-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathDockerfile.centos7
65 lines (55 loc) · 2.43 KB
/
Dockerfile.centos7
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
FROM centos:7 as build
### ARG declarations ###
ARG R_VERSION=4.4.0
ARG R_VERSION_ALT=4.3.3
ARG PYTHON_VERSION=3.9.14
ARG PYTHON_VERSION_ALT=3.8.15
ARG TINI_VERSION=0.19.0
ARG QUARTO_VERSION=1.3.340
ARG SCRIPTS_DIR=/opt/positscripts
COPY --chmod=0755 scripts/rhel/* ${SCRIPTS_DIR}/
### Update/upgrade system packages ###
COPY deps/centos7_packages.txt /tmp/packages.txt
# hadolint ignore=SC2046
RUN ${SCRIPTS_DIR}/yum.sh --update upgrade \
&& ${SCRIPTS_DIR}/yum.sh install epel-release \
&& ${SCRIPTS_DIR}/yum.sh install $(cat /tmp/packages.txt) \
&& ${SCRIPTS_DIR}/yum.sh --clean
### Install tini ###
ADD https://cdn.rstudio.com/platform/tini/v${TINI_VERSION}/tini-amd64 /tini
ADD https://cdn.rstudio.com/platform/tini/v${TINI_VERSION}/tini-amd64.asc /tini.asc
RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
&& gpg --batch --verify /tini.asc /tini \
&& chmod +x /tini \
&& ln -s /tini /usr/local/bin/tini
### Install TinyTeX ###
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN curl -fsSL "https://yihui.org/tinytex/install-bin-unix.sh" | sh \
&& /root/.TinyTeX/bin/*/tlmgr path remove \
&& mv /root/.TinyTeX/ /opt/TinyTeX \
&& /opt/TinyTeX/bin/*/tlmgr option sys_bin /usr/local/bin \
&& /opt/TinyTeX/bin/*/tlmgr path add
### Install R versions ###
RUN R_VERSION=${R_VERSION} ${SCRIPTS_DIR}/install_r.sh \
&& R_VERSION=${R_VERSION_ALT} ${SCRIPTS_DIR}/install_r.sh \
&& ln -s /opt/R/${R_VERSION} /opt/R/default \
&& ln -s /opt/R/default/bin/R /usr/local/bin/R \
&& ln -s /opt/R/default/bin/Rscript /usr/local/bin/Rscript
### Install Python versions ###
COPY deps/requirements.txt /tmp/requirements.txt
RUN PYTHON_VERSION=${PYTHON_VERSION} ${SCRIPTS_DIR}/install_python.sh -r /tmp/requirements.txt \
&& PYTHON_VERSION=${PYTHON_VERSION_ALT} ${SCRIPTS_DIR}/install_python.sh -r /tmp/requirements.txt \
&& ln -s /opt/python/${PYTHON_VERSION} /opt/python/default \
&& rm -f /tmp/requirements.txt
### Locale configuration ###
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
LABEL posit.r.version="${R_VERSION}" \
posit.r.version_alt="${R_VERSION_ALT}" \
posit.python.version="${PYTHON_VERSION}" \
posit.python.version_alt="${PYTHON_VERSION_ALT}" \
posit.tini.version="${TINI_VERSION}" \
posit.quarto.version="${QUARTO_VERSION}"
ENTRYPOINT ["/tini", "--"]