Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

Commit

Permalink
Forgot to port the docker changes
Browse files Browse the repository at this point in the history
  • Loading branch information
jkamins7 committed Aug 3, 2022
1 parent 437a2a0 commit bd1f09a
Show file tree
Hide file tree
Showing 2,685 changed files with 24,686 additions and 2,910 deletions.
1 change: 1 addition & 0 deletions .github/workflows/dockerhub.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
paths:
- 'Dockerfile'
- 'Docker.Rprofile'
- 'Docker.bashrc'
- 'renv/**'
- 'renv.lock'
- 'renv.cache/**'
Expand Down
118 changes: 118 additions & 0 deletions Docker.bashrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
source /var/python/3.10/virtualenv/bin/activate
59 changes: 27 additions & 32 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ RUN set -e \
gnupg2 gnupg1 ca-certificates software-properties-common \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 \
&& add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' \
&& add-apt-repository ppa:git-core/ppa
&& add-apt-repository ppa:git-core/ppa \
&& add-apt-repository ppa:deadsnakes/ppa

RUN apt-get update && \
apt-get install -y --no-install-recommends \
Expand Down Expand Up @@ -70,10 +71,15 @@ RUN apt-get update && \
supervisor \
awscli \
r-base-dev=$R_VERSION \
python3-venv \
python3.10 \
python3.10-dev \
python3.10-distutils \
python3.10-venv \
# make sure we have up-to-date CA certs or curling some https endpoints (like python.org) may fail
ca-certificates \
# app user creation
&& sudo ln -s /usr/bin/python3.10 /usr/local/bin/python \
&& sudo ln -s /usr/bin/pip3 /usr/local/bin/pip \
&& useradd -m app \
&& mkdir -p /home/app \
&& chown -R app:app /home/app \
Expand All @@ -86,42 +92,31 @@ USER app
ENV HOME /home/app

#####
# R
# Python (managed via pyenv)
#####
#
ENV PYTHON_VERSION 3.10
ENV VENV_ROOT /var/python/$PYTHON_VERSION/virtualenv
COPY --chown=app:app gempyor_pkg $HOME/gempyor_pkg

# Use packrat for R package management
RUN sudo Rscript -e "install.packages('renv',repos='https://cloud.r-project.org/')" \
&& cd /home/app
# && Rscript -e 'arrow::install_arrow()'
COPY --chown=app:app renv.cache $HOME/.cache
COPY --chown=app:app renv.lock $HOME/renv.lock
COPY --chown=app:app renv $HOME/renv
COPY --chown=app:app Docker.Rprofile $HOME/.Rprofile
RUN sudo python -m venv $VENV_ROOT \
&& sudo chown app:app -R $VENV_ROOT \
&& $VENV_ROOT/bin/python3.10 -m pip install --upgrade setuptools pip \
&& $VENV_ROOT/bin/python3.10 -m pip install $HOME/gempyor_pkg

COPY --chown=app:app Docker.bashrc $HOME/.bashrc
COPY --chown=root:root Docker.bashrc /root/.bashrc

#####
# Python (managed via pyenv)
# R
#####

ENV PYENV_ROOT $HOME/.pyenv
ENV PYTHON_VERSION 3.10.1
ENV PYTHON_VENV_DIR $HOME/python_venv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH


RUN git clone https://github.com/yyuu/pyenv.git $HOME/.pyenv \
&& rm -rf $HOME/.pyenv/.git \
&& env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -s $PYTHON_VERSION --verbose \
&& pyenv rehash \
&& echo 'eval "$(pyenv init -)"' >> ~/.bashrc \
&& echo "pyenv shell $PYTHON_VERSION" >> ~/.bashrc \
&& echo "PS1=\"\[\e]0;\u@\h: \w\a\] \h:\w\$ \"" >> ~/.bashrc

# automatically activate the python venv when logging in
COPY --chown=app:app gempyor_pkg $HOME/gempyor_pkg
RUN eval "$(pyenv init -)" \
&& pyenv shell $PYTHON_VERSION \
&& pip install --upgrade pip setuptools \
&& pip install --user $HOME/gempyor_pkg
# Use renv for R package management
RUN sudo Rscript -e "install.packages('renv',repos='https://cloud.r-project.org/')"
COPY --chown=app:app renv.cache $HOME/.cache
COPY --chown=app:app renv.lock $HOME/renv.lock
COPY --chown=app:app renv $HOME/renv
COPY --chown=app:app Docker.Rprofile $HOME/.Rprofile
COPY --chown=app:app R/pkgs $HOME/pkgs

CMD ["/bin/bash"]
19 changes: 0 additions & 19 deletions packrat-README

This file was deleted.

Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Loading

0 comments on commit bd1f09a

Please sign in to comment.