|
| 1 | +FROM debian:13 |
| 2 | + |
| 3 | +ARG BRANCH=master |
| 4 | +ARG RSTUDIO=2024.12.0-467 |
| 5 | + |
| 6 | +RUN \ |
| 7 | + apt-get update && \ |
| 8 | + apt-get -y dist-upgrade && \ |
| 9 | + apt-get install -y wget make devscripts apache2-dev apache2 libapreq2-dev r-base r-base-dev libapparmor-dev libfontconfig-dev libcurl4-openssl-dev libprotobuf-dev protobuf-compiler libcairo2-dev xvfb xauth xfonts-base curl libssl-dev libxml2-dev libicu-dev pkg-config libssh2-1-dev locales apt-utils cmake && \ |
| 10 | + useradd -ms /bin/bash builder |
| 11 | + |
| 12 | +# Note: this is different from Ubuntu (c.f. 'language-pack-en-base') |
| 13 | +RUN localedef -i en_US -f UTF-8 en_US.UTF-8 |
| 14 | + |
| 15 | +USER builder |
| 16 | + |
| 17 | +RUN \ |
| 18 | + cd ~ && \ |
| 19 | + wget --quiet https://github.com/opencpu/opencpu-server/archive/${BRANCH}.tar.gz && \ |
| 20 | + tar xzf ${BRANCH}.tar.gz && rm ${BRANCH}.tar.gz && \ |
| 21 | + cd opencpu-server-* && \ |
| 22 | + sed -i 's/focal/bullseye/g' debian/changelog && \ |
| 23 | + dpkg-buildpackage -us -uc |
| 24 | + |
| 25 | +USER root |
| 26 | + |
| 27 | +RUN \ |
| 28 | + apt-get install -y libapache2-mod-r-base cron && \ |
| 29 | + dpkg -i /home/builder/opencpu-lib_*.deb && \ |
| 30 | + dpkg -i /home/builder/opencpu-server_*.deb |
| 31 | + |
| 32 | +RUN \ |
| 33 | + apt-get install -y git sudo && \ |
| 34 | + wget --quiet https://download2.rstudio.org/server/jammy/amd64/rstudio-server-${RSTUDIO}-amd64.deb && \ |
| 35 | + apt install --reinstall -y -o=Dpkg::Use-Pty=0 -o=Apt::Cmd::Disable-Script-Warning=1 ./rstudio-server-${RSTUDIO}-amd64.deb && \ |
| 36 | + rm -f rstudio-server-${RSTUDIO}-amd64.deb && \ |
| 37 | + echo "server-app-armor-enabled=0" >> /etc/rstudio/rserver.conf |
| 38 | + |
| 39 | +# Prints apache logs to stdout |
| 40 | +RUN \ |
| 41 | + ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \ |
| 42 | + ln -sf /proc/self/fd/1 /var/log/apache2/error.log && \ |
| 43 | + ln -sf /proc/self/fd/1 /var/log/opencpu/apache_access.log && \ |
| 44 | + ln -sf /proc/self/fd/1 /var/log/opencpu/apache_error.log |
| 45 | + |
| 46 | +# Set opencpu password so that we can login |
| 47 | +RUN \ |
| 48 | + echo "opencpu:opencpu" | chpasswd |
| 49 | + |
| 50 | +# Apache ports |
| 51 | +EXPOSE 80 |
| 52 | +EXPOSE 443 |
| 53 | +EXPOSE 8004 |
| 54 | + |
| 55 | +# Start non-daemonized webserver |
| 56 | +CMD service cron start && /usr/lib/rstudio-server/bin/rserver && apachectl -DFOREGROUND |
0 commit comments