summaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile61
1 files changed, 61 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..e18b21a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,61 @@
+FROM httpd:alpine
+MAINTAINER Bytemark Hosting "support@bytemark.co.uk"
+
+# This variable is inherited from httpd:alpine image:
+# ENV HTTPD_PREFIX /usr/local/apache2
+
+RUN set -ex; \
+ # Create Debian-style subdirectories.
+ mkdir -p "$HTTPD_PREFIX/conf/conf-available"; \
+ mkdir -p "$HTTPD_PREFIX/conf/conf-enabled"; \
+ mkdir -p "$HTTPD_PREFIX/conf/sites-available"; \
+ mkdir -p "$HTTPD_PREFIX/conf/sites-enabled"
+
+# Copy in our configuration files.
+COPY dav.conf "$HTTPD_PREFIX/conf/conf-available"
+COPY default.conf "$HTTPD_PREFIX/conf/sites-available"
+COPY default-ssl.conf "$HTTPD_PREFIX/conf/sites-available"
+
+RUN set -ex; \
+ # Create empty default DocumentRoot.
+ mkdir -p "/var/www/html"; \
+ # Create directories for Dav data and lock database.
+ mkdir -p "/var/lib/dav"; \
+ mkdir -p "/var/lib/dav/data"; \
+ touch "/var/lib/dav/DavLock"; \
+ chown -R www-data:www-data "/var/lib/dav"; \
+ \
+ # Enable DAV modules.
+ for i in dav dav_fs; do \
+ sed -i -e "/^#LoadModule ${i}_module.*/s/^#//" "$HTTPD_PREFIX/conf/httpd.conf"; \
+ done; \
+ \
+ # Make sure authentication modules are enabled.
+ for i in authn_core authn_file authz_core authz_user auth_basic auth_digest; do \
+ sed -i -e "/^#LoadModule ${i}_module.*/s/^#//" "$HTTPD_PREFIX/conf/httpd.conf"; \
+ done; \
+ \
+ # Make sure other modules are enabled.
+ for i in alias headers mime setenvif; do \
+ sed -i -e "/^#LoadModule ${i}_module.*/s/^#//" "$HTTPD_PREFIX/conf/httpd.conf"; \
+ done; \
+ \
+ # Run httpd as "www-data" (instead of "daemon").
+ for i in User Group; do \
+ sed -i -e "s|^$i .*|$i www-data|" "$HTTPD_PREFIX/conf/httpd.conf"; \
+ done; \
+ \
+ # Include enabled configs and sites.
+ printf '%s\n' "Include conf/conf-enabled/*.conf" \
+ >> "$HTTPD_PREFIX/conf/httpd.conf"; \
+ printf '%s\n' "Include conf/sites-enabled/*.conf" \
+ >> "$HTTPD_PREFIX/conf/httpd.conf"; \
+ \
+ # Enable dav and default site.
+ ln -s ../conf-available/dav.conf "$HTTPD_PREFIX/conf/conf-enabled"; \
+ ln -s ../sites-available/default.conf "$HTTPD_PREFIX/conf/sites-enabled"
+
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+EXPOSE 80/tcp 443/tcp
+ENTRYPOINT [ "docker-entrypoint.sh" ]
+CMD [ "httpd-foreground" ]