Compare commits

...

23 Commits

Author SHA1 Message Date
Markus Opolka
8830f66b10 Upgrading to Version 4.6.1+210510 2021-05-11 08:22:50 +02:00
Markus Opolka
456a2ab4d2 Upgrading to LTS Version 3.26.2+210503 2021-05-11 08:22:14 +02:00
Markus Opolka
fd744e5c46 Update README 2021-05-11 08:21:17 +02:00
Markus Opolka
f1b7efb2d5 Add configuration to run apache containers as www-data user (#61)
- in preparation for changing the default to www-data,
   which will happen at some time in the future
2021-05-09 11:35:41 +02:00
Markus Opolka
74b3f31ee4 Upgrading to Version 4.5.2+210426 2021-05-05 12:40:28 +02:00
Markus Opolka
fc6f655cf7 Upgrading to LTS Version 3.26.1+210427 2021-05-05 12:39:26 +02:00
Michael Prankl
01f6b41082 Customize Apache listen port (#59)
* Overwrite apache listen port in Apache configuration if configured via environment variable LISTEN_PORT
* Add documenation to README
* Add default value to ENV vars documentation

Co-authored-by: Michael Prankl <michael.prankl@muenchen.de>
2021-05-01 13:12:43 +02:00
Markus Opolka
c8d36cf425 Upgrading to Version 4.5.1+210420 2021-04-26 19:02:41 +02:00
Markus Opolka
0f7900e237 Upgrading to LTS Version 3.26.0+210419 2021-04-26 19:01:38 +02:00
Markus Opolka
a782896897 Upgrading to Version 4.5.0+210412 2021-04-19 17:53:54 +02:00
Markus Opolka
ce70ec3000 Upgrading to LTS Version 3.25.22+210413 2021-04-19 17:51:31 +02:00
Markus Opolka
0403aa1208 Upgrading to Version 4.4.16+210406 2021-04-12 17:02:11 +02:00
Markus Opolka
5a011e6818 Upgrading to LTS Version 3.25.21+210407 2021-04-12 17:01:30 +02:00
Markus Opolka
bb23531c6d Upgrading to Version 4.4.15+210329 2021-04-07 17:34:02 +02:00
Markus Opolka
69e8bcec7e Upgrading to LTS Version 3.25.20+210330 2021-04-07 17:33:18 +02:00
Markus Opolka
d26552bb6f Merge pull request #55 from PabloCastellano/master
Use docker volumes for postgres database
2021-04-04 07:26:02 +02:00
Pablo Castellano
1360fb8001 Use docker volumes for postgres database 2021-04-03 11:26:30 +02:00
Markus Opolka
fceae6b3cd Upgrading to Version 4.4.14+210322 2021-03-30 08:00:45 +02:00
Markus Opolka
b62a83ac83 Upgrading to LTS Version 3.25.19+210323 2021-03-30 07:59:56 +02:00
Markus Opolka
d106c2ceb6 Merge pull request #53 from martialblog/hadolint
Add Hadolint to CI
2021-03-22 20:14:46 +01:00
Markus Opolka
0c4690c97a Add hadolint to CI 2021-03-22 20:06:08 +01:00
Markus Opolka
ebb51363a1 Optimise nginx certbot example Dockerfile 2021-03-22 20:05:30 +01:00
Markus Opolka
debb4037a2 Upgrading to Version 4.4.13+210315 2021-03-22 19:45:58 +01:00
15 changed files with 78 additions and 28 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
# force LF in entrypoint.sh
entrypoint.sh text eol=lf

View File

@@ -2,12 +2,17 @@ sudo: required
language: bash language: bash
services: services:
- docker - docker
install:
matrix: jobs:
include: include:
- env: HADOLINT="${HOME}/hadolint"
script:
- curl -sL -o ${HADOLINT} "https://github.com/hadolint/hadolint/releases/download/v1.23.0/hadolint-$(uname -s)-$(uname -m)"
- chmod 700 ${HADOLINT}
- git ls-files --exclude='Dockerfile*' --ignored | xargs --max-lines=1 ${HADOLINT} --ignore DL4006 --ignore DL3008 --ignore DL3018
- env: TAG=martialblog/limesurvey-apache - env: TAG=martialblog/limesurvey-apache
script: cd 3.0/apache; docker build -q -t $TAG . && cd ../..; ./tests/run.sh $TAG script: cd 4.0/apache; docker build -q -t $TAG . && cd ../..; ./tests/run.sh $TAG
- env: TAG=martialblog/limesurvey-fpm - env: TAG=martialblog/limesurvey-fpm
script: cd 3.0/fpm; docker build -q -t $TAG . && cd ../..; ./tests/run.sh $TAG script: cd 4.0/fpm; docker build -q -t $TAG . && cd ../..; ./tests/run.sh $TAG
- env: TAG=martialblog/limesurvey-alpine - env: TAG=martialblog/limesurvey-alpine
script: cd 3.0/fpm; docker build -q -t $TAG . && cd ../..; ./tests/run.sh $TAG script: cd 4.0/fpm; docker build -q -t $TAG . && cd ../..; ./tests/run.sh $TAG

View File

@@ -1,7 +1,9 @@
FROM php:7.4-apache FROM php:7.4-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.25.18+210316' ARG version='3.26.2+210503'
ARG sha256_checksum='16c5b775ffe7cab778eb10ffe8723f45762e031ced4d254508a53f691dd9bd2d' ARG sha256_checksum='f76f1983e9dbf432346679c5697189a64e41a795facffa392bb9c66ea0de5675'
ARG USER=root
ARG LISTEN_PORT=80
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \
@@ -71,9 +73,10 @@ RUN set -ex; \
\ \
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \ tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \ rm -f "/tmp/limesurvey.tar.gz" && \
chown -R www-data:www-data /var/www/html chown -R www-data:www-data /var/www/html /etc/apache2
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh entrypoint.sh
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/var/www/html/entrypoint.sh"]
CMD ["apache2-foreground"] CMD ["apache2-foreground"]

View File

@@ -23,6 +23,8 @@ URL_FORMAT=${URL_FORMAT:-'path'}
DEBUG=${DEBUG:-0} DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0} DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"80"}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD'
exit 1 exit 1
@@ -33,6 +35,11 @@ if [ -z "$ADMIN_PASSWORD" ]; then
exit 1 exit 1
fi fi
if [ "$LISTEN_PORT" != "80" ]; then
echo "Info: Customizing Apache Listen port to $LISTEN_PORT"
sed -i "s/80/$LISTEN_PORT/" /etc/apache2/ports.conf /etc/apache2/sites-available/000-default.conf
fi
# Check if database is available # Check if database is available
if [ -z "$DB_SOCK" ]; then if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT until nc -z -v -w30 $DB_HOST $DB_PORT

View File

@@ -1,7 +1,7 @@
FROM php:7.4-fpm-alpine FROM php:7.4-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.25.18+210316' ARG version='3.26.2+210503'
ARG sha256_checksum='16c5b775ffe7cab778eb10ffe8723f45762e031ced4d254508a53f691dd9bd2d' ARG sha256_checksum='f76f1983e9dbf432346679c5697189a64e41a795facffa392bb9c66ea0de5675'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.4-fpm FROM php:7.4-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.25.18+210316' ARG version='3.26.2+210503'
ARG sha256_checksum='16c5b775ffe7cab778eb10ffe8723f45762e031ced4d254508a53f691dd9bd2d' ARG sha256_checksum='f76f1983e9dbf432346679c5697189a64e41a795facffa392bb9c66ea0de5675'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,9 @@
FROM php:7.4-apache FROM php:7.4-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.4.12+210308' ARG version='4.6.1+210510'
ARG sha256_checksum='cdd29b05e2491352287dbce5954ce3e5493d8c2b03716f7cda665c138d4d40ff' ARG sha256_checksum='6051b14d7c92e466799ed02710b7ecb0203613663769e93a4759e4a5b4175d85'
ARG USER=root
ARG LISTEN_PORT=80
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \
@@ -72,9 +74,10 @@ RUN set -ex; \
\ \
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \ tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \ rm -f "/tmp/limesurvey.tar.gz" && \
chown -R www-data:www-data /var/www/html chown -R www-data:www-data /var/www/html /etc/apache2
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh entrypoint.sh
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/var/www/html/entrypoint.sh"]
CMD ["apache2-foreground"] CMD ["apache2-foreground"]

View File

@@ -27,6 +27,8 @@ URL_FORMAT=${URL_FORMAT:-'path'}
DEBUG=${DEBUG:-0} DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0} DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"80"}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD'
exit 1 exit 1
@@ -37,6 +39,11 @@ if [ -z "$ADMIN_PASSWORD" ]; then
exit 1 exit 1
fi fi
if [ "$LISTEN_PORT" != "80" ]; then
echo "Info: Customizing Apache Listen port to $LISTEN_PORT"
sed -i "s/80/$LISTEN_PORT/" /etc/apache2/ports.conf /etc/apache2/sites-available/000-default.conf
fi
# Check if database is available # Check if database is available
if [ -z "$DB_SOCK" ]; then if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT until nc -z -v -w30 $DB_HOST $DB_PORT

View File

@@ -1,7 +1,7 @@
FROM php:7.4-fpm-alpine FROM php:7.4-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.4.12+210308' ARG version='4.6.1+210510'
ARG sha256_checksum='cdd29b05e2491352287dbce5954ce3e5493d8c2b03716f7cda665c138d4d40ff' ARG sha256_checksum='6051b14d7c92e466799ed02710b7ecb0203613663769e93a4759e4a5b4175d85'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.4-fpm FROM php:7.4-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.4.12+210308' ARG version='4.6.1+210510'
ARG sha256_checksum='cdd29b05e2491352287dbce5954ce3e5493d8c2b03716f7cda665c138d4d40ff' ARG sha256_checksum='6051b14d7c92e466799ed02710b7ecb0203613663769e93a4759e4a5b4175d85'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -13,15 +13,19 @@ Dockerfile to build a [LimeSurvey](https://limesurvey.org) Image for the Docker
## Supported tags and respective Dockerfile links ## Supported tags and respective Dockerfile links
- [`4-apache`, `4.<BUILD-NUMBER>-apache`, `latest` ](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/apache/Dockerfile) - [`4-apache`, `4.<BUILD-NUMBER>-apache`, `latest` ](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/apache/Dockerfile)
- [`4-apache-rootless`, `4.<BUILD-NUMBER>-apache-rootless`](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/apache/Dockerfile)
- [`4-fpm`, `4.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/fpm/Dockerfile) - [`4-fpm`, `4.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/fpm/Dockerfile)
- [`4-fpm-alpine`, `4.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/fpm-alpine/Dockerfile) - [`4-fpm-alpine`, `4.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/4.0/fpm-alpine/Dockerfile)
- [`3-apache`, `3.<BUILD-NUMBER>-apache`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/apache/Dockerfile) - [`3-apache`, `3.<BUILD-NUMBER>-apache`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/apache/Dockerfile)
- [`3-apache-rootless`, `3.<BUILD-NUMBER>-apache-rootless`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/apache/Dockerfile)
- [`3-fpm`, `3.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/fpm/Dockerfile) - [`3-fpm`, `3.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/fpm/Dockerfile)
- [`3-fpm-alpine`, `3.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/fpm-alpine/Dockerfile) - [`3-fpm-alpine`, `3.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/fpm-alpine/Dockerfile)
# Using the Apache Image # Using the Apache Image
The apache image comes with an Apache Webserver and PHP installed. The `apache` image comes with an Apache Webserver and PHP installed.
This image is also available as `rootless` with `www-data` as default user.
## Apache Configuration ## Apache Configuration
@@ -31,6 +35,8 @@ To change to Apache Webserver configuration, mount a Volume into the Container a
See the example configuration provided. See the example configuration provided.
If you want to run Apache on a non-privileged port inside the container, just specify a environment variable `LISTEN_PORT` (e.g. `LISTEN_PORT=8080`).
# Using the fpm Image # Using the fpm Image
To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. See *docker-compose.fpm.yml* for example. To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. See *docker-compose.fpm.yml* for example.
@@ -112,6 +118,7 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
| ENCRYPT_KEYPAIR | Data encryption keypair | | ENCRYPT_KEYPAIR | Data encryption keypair |
| ENCRYPT_PUBLIC_KEY | Data encryption public key | | ENCRYPT_PUBLIC_KEY | Data encryption public key |
| ENCRYPT_SECRET_KEY | Data encryption secret key | | ENCRYPT_SECRET_KEY | Data encryption secret key |
| LISTEN_PORT | Apache: Listen port. Default: 80 |
For further details on the settings see: https://manual.limesurvey.org/Optional_settings#Advanced_Path_Settings For further details on the settings see: https://manual.limesurvey.org/Optional_settings#Advanced_Path_Settings

View File

@@ -22,8 +22,10 @@ services:
depends_on: depends_on:
- db - db
db: db:
image: postgres:9.6-alpine image: postgres:10-alpine
restart: always restart: always
volumes:
- db-data:/var/lib/postgresql
environment: environment:
- POSTGRES_USER=limesurvey - POSTGRES_USER=limesurvey
- POSTGRES_DB=limesurvey - POSTGRES_DB=limesurvey
@@ -31,3 +33,4 @@ services:
volumes: volumes:
limesurvey: limesurvey:
db-data:

View File

@@ -20,7 +20,12 @@ services:
- "ADMIN_PASSWORD=foobar" - "ADMIN_PASSWORD=foobar"
lime-db: lime-db:
image: postgres:10 image: postgres:10
volumes:
- db-data:/var/lib/postgresql
environment: environment:
- "POSTGRES_USER=limesurvey" - "POSTGRES_USER=limesurvey"
- "POSTGRES_DB=limesurvey" - "POSTGRES_DB=limesurvey"
- "POSTGRES_PASSWORD=secret" - "POSTGRES_PASSWORD=secret"
volumes:
db-data:

View File

@@ -2,8 +2,12 @@
apache3: apache3:
docker build --pull -t martialblog/limesurvey:3-apache 3.0/apache docker build --pull -t martialblog/limesurvey:3-apache 3.0/apache
apache3-rootless:
docker build --pull --build-arg USER=www-data --build-arg LISTEN_PORT=8080 -t martialblog/limesurvey:3-apache-rootless 3.0/apache
apache4: apache4:
docker build --pull -t martialblog/limesurvey:4-apache 4.0/apache docker build --pull -t martialblog/limesurvey:3-apache 3.0/apache
apache4-rootless:
docker build --pull --build-arg USER=www-data --build-arg LISTEN_PORT=8080 -t martialblog/limesurvey:4-apache-rootless 4.0/apache
fpm-alpine3: fpm-alpine3:
docker build --pull -t martialblog/limesurvey:3-fpm-alpine 3.0/fpm-alpine docker build --pull -t martialblog/limesurvey:3-fpm-alpine 3.0/fpm-alpine
fpm-alpine4: fpm-alpine4:

View File

@@ -1,10 +1,14 @@
FROM nginx FROM nginx:stable
RUN apt-get update && \ LABEL maintainer="markus@martialblog.de"
apt-get install -y certbot curl python-certbot-nginx && \
apt-get -y autoclean; apt-get -y autoremove; \ RUN set -ex; \
rm -rf /var/lib/apt/lists/* apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
certbot curl python-certbot-nginx && \
apt-get -y autoclean; apt-get -y autoremove; \
rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /entrypoint.sh COPY entrypoint.sh /entrypoint.sh
RUN chmod 700 /entrypoint.sh RUN chmod 700 /entrypoint.sh
CMD ["/entrypoint.sh"] CMD ["/entrypoint.sh"]