-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
85 lines (69 loc) · 2.3 KB
/
Dockerfile
File metadata and controls
85 lines (69 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
FROM rocker/r-ver:4.4.3
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
build-essential \
curl \
git \
libbz2-dev \
libcurl4-openssl-dev \
libfreetype6-dev \
libjpeg-dev \
libffi-dev \
libfontconfig1-dev \
libfribidi-dev \
libgit2-dev \
libharfbuzz-dev \
liblzma-dev \
libncurses5-dev \
libpng-dev \
libreadline-dev \
libsqlite3-dev \
libssl-dev \
libtiff5-dev \
libv8-dev \
libxml2-dev \
libxmlsec1-dev \
libxslt1-dev \
llvm \
tk-dev \
wget \
xz-utils \
zlib1g-dev && \
rm -rf /var/lib/apt/lists/*
# use bash, not sh
SHELL ["/bin/bash", "-c"]
# Copy over the install packages script
COPY ./install_r_packages.R /tmp/install_r_packages.R
# Run the R package install script
RUN Rscript /tmp/install_r_packages.R \
&& rm -f /tmp/install_r_packages.R \
&& strip /usr/local/lib/R/site-library/*/libs/*.so
# Install pyenv and Python
ENV PYTHON_VERSION=3.10.6
ENV PYENV_ROOT="/root/.pyenv"
ENV PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
RUN git clone https://github.com/pyenv/pyenv.git $PYENV_ROOT && \
$PYENV_ROOT/bin/pyenv install $PYTHON_VERSION && \
$PYENV_ROOT/bin/pyenv global $PYTHON_VERSION
# Update shell configuration for pyenv in Docker environment
RUN echo 'export PYENV_ROOT="/root/.pyenv"' >> /root/.bashrc \
&& echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.bashrc \
&& echo 'eval "$(pyenv init --path)"' >> /root/.bashrc \
&& echo 'eval "$(pyenv init -)"' >> /root/.bashrc
# Install pip 24.2 for Python
RUN bash -c "source /root/.bashrc && python3 -m ensurepip --upgrade && python3 -m pip install --upgrade pip"
COPY ./requirements.txt /usr/src/app/requirements.txt
WORKDIR /usr/src/app
# Install required Python packages
RUN bash -c "source /root/.bashrc && python3 -m pip install \
--no-cache-dir -r requirements.txt"
RUN mkdir -p /usr/src/schematron && \
wget -O '/usr/src/schematron/bsyncr_schematron.sch' 'https://raw.githubusercontent.com/BuildingSync/bsyncr/develop/bsyncr_schematron.sch'
# set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV FLASK_APP=/usr/src/app/bsyncr_server/main.py
COPY . /usr/src/app/
EXPOSE 5000
CMD ["python3", "manage.py", "run", "-h", "0.0.0.0"]