You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
FROM ubuntu:latest |
|
|
|
# update to the latest packages |
|
ENV DEBIAN_FRONTEND="noninteractive" |
|
RUN apt-get update && apt-get upgrade -y |
|
|
|
# add user that will be used to install and run the application |
|
RUN groupadd -g 1000 deploy |
|
RUN useradd -m -u 1000 -g deploy deploy |
|
|
|
# install required packages for debugging |
|
# RUN apt-get install -y vim curl lsof |
|
|
|
|
|
# |
|
# CUSTOM PART IS BELOW HERE |
|
# |
|
|
|
# install required packages |
|
RUN apt-get install -y apache2 apache2-utils libapache2-mod-svn subversion |
|
# added more packages to separate install |
|
# since apache2 currently has a dependency problem and |
|
# cached docker image can be reused |
|
RUN apt-get install -y git python3 python3-pip sudo |
|
|
|
# copy the script to run httpd in foreground |
|
COPY httpd-foreground /usr/local/bin/ |
|
RUN chmod u+x /usr/local/bin/httpd-foreground |
|
|
|
# add svn site configuration |
|
ADD dav_svn.conf /etc/apache2/sites-enabled/dav_svn.conf |
|
|
|
# create writable directory for dav lock file |
|
#RUN mkdir /var/lib/dav/ |
|
|
|
# adjust apache configuration files |
|
#RUN sed -i.bak 's/LogLevel warn/LogLevel debug/' /etc/apache2/apache2.conf |
|
RUN sed -i.bak 's/Listen 80/Listen 80\nListen 8000/' /etc/apache2/ports.conf |
|
|
|
# setup runtime variables for apache |
|
ENV APACHE_PID_FILE=/var/run/apache2/apache2.pid |
|
ENV APACHE_LOCK_DIR=/var/lock/apache2 |
|
ENV APACHE_LOG_DIR=/var/log/apache2 |
|
ENV APACHE_RUN_DIR=/var/run/apache2 |
|
ENV APACHE_RUN_USER=deploy |
|
ENV APACHE_RUN_GROUP=deploy |
|
|
|
# allow sudo http-foreground for deploy user |
|
ADD sudoer_deploy /etc/sudoers.d/deploy |
|
RUN chmod 0440 /etc/sudoers.d/deploy |
|
|
|
# switch to user deploy |
|
USER deploy |
|
|
|
# set path to include ~/.local/bin |
|
ENV PATH "$PATH:/home/deploy/.local/bin" |
|
|
|
# install elab users management script |
|
RUN pip install --upgrade pip |
|
RUN pip install git+https://git.cpi.imtek.uni-freiburg.de/CPI/elab-users.git |
|
|
|
# change the working directory |
|
WORKDIR /data |
|
|
|
# Start httpd as root, but will switch to deploy user thanks to env variable |
|
CMD ["sudo", "APACHE_RUN_DIR=/var/run/apache2", "httpd-foreground"]
|
|
|