mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-06-14 05:50:18 +00:00
103 lines
3.0 KiB
Docker
103 lines
3.0 KiB
Docker
#Version 0.4
|
|
#Davical + apache
|
|
#---------------------------------------------------------------------
|
|
#Default configuration: hostname: davical.example
|
|
# user: admin
|
|
# pass: 12345
|
|
#---------------------------------------------------------------------
|
|
|
|
FROM alpine
|
|
MAINTAINER https://github.com/datze
|
|
|
|
ARG TIME_ZONE "Europe/Rome"
|
|
ENV TIME_ZONE=$TIME_ZONE
|
|
|
|
ARG HOST_NAME "davical.example"
|
|
ENV HOST_NAME=$HOST_NAME
|
|
|
|
|
|
RUN addgroup -S apache && adduser -S apache -G apache
|
|
|
|
# apk
|
|
RUN apk --update add \
|
|
sudo \
|
|
bash \
|
|
less \
|
|
sed \
|
|
apache2 \
|
|
apache2-utils \
|
|
apache2-ssl \
|
|
php7 \
|
|
php7-apache2 \
|
|
php7-pgsql \
|
|
php7-imap \
|
|
php7-curl \
|
|
php7-cgi \
|
|
php7-xml \
|
|
php7-gettext \
|
|
php7-iconv \
|
|
php7-ldap \
|
|
php7-pdo \
|
|
php7-pdo_pgsql \
|
|
php7-calendar \
|
|
php7-session \
|
|
git \
|
|
libcap \
|
|
# git
|
|
&& git clone https://gitlab.com/davical-project/awl.git /usr/share/awl/ \
|
|
&& git clone https://gitlab.com/davical-project/davical.git /usr/share/davical/ \
|
|
&& rm -rf /usr/share/davical/.git /usr/share/awl/.git/ \
|
|
&& apk del git
|
|
|
|
|
|
# config files, shell scripts
|
|
COPY apache2_start.sh /sbin/apache2_start.sh
|
|
COPY apache.conf /config/apache.conf
|
|
COPY davical.php /config/davical.php
|
|
|
|
# Apache
|
|
RUN chown -R root:apache /usr/share/davical \
|
|
&& cd /usr/share/davical/ \
|
|
&& find ./ -type d -exec chmod u=rwx,g=rx,o=rx '{}' \; \
|
|
&& find ./ -type f -exec chmod u=rw,g=r,o=r '{}' \; \
|
|
&& find ./ -type f -name *.sh -exec chmod u=rwx,g=r,o=rx '{}' \; \
|
|
&& find ./ -type f -name *.php -exec chmod u=rwx,g=rx,o=r '{}' \; \
|
|
&& chmod o=rx /usr/share/davical \
|
|
&& chown -R root:apache /usr/share/awl \
|
|
&& cd /usr/share/awl/ \
|
|
&& find ./ -type d -exec chmod u=rwx,g=rx,o=rx '{}' \; \
|
|
&& find ./ -type f -exec chmod u=rw,g=r,o=r '{}' \; \
|
|
&& find ./ -type f -name *.sh -exec chmod u=rwx,g=rx,o=r '{}' \; \
|
|
&& find ./ -type f -name *.sh -exec chmod u=rwx,g=r,o=rx '{}' \; \
|
|
&& chmod o=rx /usr/share/awl \
|
|
&& mkdir /etc/davical \
|
|
&& sed -i /CustomLog/s/^/#/ /etc/apache2/httpd.conf \
|
|
&& sed -i /ErrorLog/s/^/#/ /etc/apache2/httpd.conf \
|
|
&& sed -i /TransferLog/s/^/#/ /etc/apache2/httpd.conf \
|
|
&& sed -i /CustomLog/s/^/#/ /etc/apache2/conf.d/ssl.conf \
|
|
&& sed -i /ErrorLog/s/^/#/ /etc/apache2/conf.d/ssl.conf \
|
|
&& sed -i /TransferLog/s/^/#/ /etc/apache2/conf.d/ssl.conf \
|
|
# permissions for shell scripts and config files
|
|
&& chmod 0755 /sbin/apache2_start.sh \
|
|
&& chown -R root:apache /etc/davical \
|
|
&& chmod -R u=rwx,g=rx,o= /etc/davical \
|
|
&& chown root:apache /config/davical.php \
|
|
&& chmod u+rwx,g+rx /config/davical.php \
|
|
&& ln -s /config/apache.conf /etc/apache2/conf.d/davical.conf \
|
|
&& ln -s /config/davical.php /etc/davical/config.php \
|
|
# clean-up etc
|
|
&& rm -rf /var/cache/apk/* \
|
|
&& mkdir -p /run/apache2 \
|
|
&& chown -R apache:apache /var/www /run/apache2 /var/log/apache2 /etc/ssl/apache2 \
|
|
&& rm /etc/apache2/conf.d/ssl.conf
|
|
|
|
#SET THE TIMEZONE
|
|
RUN apk add --update tzdata
|
|
RUN cp /usr/share/zoneinfo/$TIME_ZONE /etc/localtime
|
|
RUN echo $TIME_ZONE > /etc/timezone
|
|
RUN apk del tzdata
|
|
|
|
RUN setcap cap_net_bind_service=+epi /usr/sbin/httpd
|
|
|
|
USER apache
|