Compare commits

...

72 Commits

Author SHA1 Message Date
Markus Opolka
ef3fab259e Upgrading to Version 6.3.3+231106 2023-11-07 07:38:47 +01:00
Markus Opolka
e693a64bf5 Upgrading to LTS Version 5.6.43+231030 2023-11-07 07:38:23 +01:00
Markus Opolka
b05e317c96 Upgrading to Version 6.3.1+231023 2023-11-01 09:05:14 +01:00
Markus Opolka
0744660347 Upgrading to LTS Version 5.6.42+231024 2023-11-01 09:04:48 +01:00
Markus Opolka
96cc3ca3f7 Merge pull request #175 from philrwebb/fix_db-data_volume_path
The volume path for db-data was wrong.   needed data sub-folder.   Without that wasn't persisting the db on stop of container.
2023-10-27 09:43:04 +02:00
Philip Webb
c1ea856389 The volume path for db-data was wrong. needed data sub-folder. Without that wasn't persisting the db on stop of container. 2023-10-27 08:21:07 +08:00
Markus Opolka
30ccc35721 Upgrading to Version 6.3.0+231016 2023-10-26 07:52:33 +02:00
Markus Opolka
6fd8b6983a Upgrading to LTS Version 5.6.41+231017 2023-10-26 07:52:01 +02:00
Markus Opolka
15bdc9507e Merge pull request #174 from wuarmin/fix-entrypoints
Now security.php is created properly if $ENCRYPT_SECRET_BOX_KEY is set
2023-10-26 07:48:37 +02:00
Armin
8cfc53adba Now security.php is created properly if $ENCRYPT_SECRET_BOX_KEY is et and $ENCRYPT_KEYPAIR is missing 2023-10-24 11:09:31 +02:00
Markus Opolka
7e73bf5223 Merge pull request #172 from martialblog/renovate/actions-checkout-digest
Update actions/checkout digest to b4ffde6
2023-10-19 13:46:46 +02:00
renovate[bot]
e73940ecd8 Update actions/checkout digest to b4ffde6 2023-10-19 11:40:51 +00:00
Markus Opolka
487881f785 Remove default passwords in all example files (#171)
* Remove default passwords in all example files

 - To discourage production use without changing the passwords.
2023-10-19 09:41:52 +02:00
Markus Opolka
2c34e0fd73 Upgrading to Version 6.2.11+231007 2023-10-16 18:04:33 +02:00
Markus Opolka
98aa523b48 Upgrading to LTS Version 5.6.40+231005 2023-10-16 18:04:13 +02:00
Markus Opolka
5b13fa3dd0 Upgrading to Version 6.2.9+230925 2023-10-05 08:38:44 +02:00
Markus Opolka
554a86cf2c Upgrading to LTS Version 5.6.39+230926 2023-10-05 08:37:58 +02:00
Markus Opolka
97aa52b49e Merge pull request #169 from martialblog/renovate/actions-checkout-digest
Update actions/checkout digest to 8ade135
2023-10-01 11:15:26 +02:00
Markus Opolka
ee74cfbd89 Upgrading to Version 6.2.8+230921 2023-09-26 07:51:17 +02:00
Markus Opolka
38ea5d09ff Upgrading to LTS Version 5.6.38+230919 2023-09-26 07:50:57 +02:00
Markus Opolka
2ef585ab53 Upgrading to Version 6.2.7+230918 2023-09-23 09:32:02 +02:00
renovate[bot]
195e017967 Update actions/checkout digest to 8ade135 2023-09-22 19:05:09 +00:00
Markus Opolka
d53b6ed63d Upgrading to Version 6.2.6+230904 2023-09-18 17:43:32 +02:00
Markus Opolka
c40d1b648d Upgrading to LTS Version 5.6.37+230905 2023-09-18 17:06:51 +02:00
Markus Opolka
bd14d877e5 Merge pull request #164 from martialblog/renovate/docker-build-push-action-5.x
Update docker/build-push-action action to v5
2023-09-12 19:52:00 +02:00
Markus Opolka
5c95e13179 Merge pull request #168 from martialblog/renovate/docker-setup-qemu-action-3.x
Update docker/setup-qemu-action action to v3
2023-09-12 19:51:39 +02:00
Markus Opolka
0e35341b7c Merge pull request #166 from martialblog/renovate/docker-metadata-action-5.x
Update docker/metadata-action action to v5
2023-09-12 16:59:23 +02:00
renovate[bot]
469ca15cb5 Update docker/setup-qemu-action action to v3 2023-09-12 14:59:17 +00:00
Markus Opolka
4f8ea7c4f1 Merge pull request #167 from martialblog/renovate/docker-setup-buildx-action-3.x
Update docker/setup-buildx-action action to v3
2023-09-12 16:58:51 +02:00
renovate[bot]
9c19d78e26 Update docker/setup-buildx-action action to v3 2023-09-12 13:50:46 +00:00
renovate[bot]
30cd0c51cc Update docker/metadata-action action to v5 2023-09-12 13:50:40 +00:00
Markus Opolka
538f9837df Merge pull request #165 from martialblog/renovate/docker-login-action-3.x
Update docker/login-action action to v3
2023-09-12 15:50:14 +02:00
renovate[bot]
8de96875af Update docker/login-action action to v3 2023-09-12 11:28:46 +00:00
renovate[bot]
adbecadb0e Update docker/build-push-action action to v5 2023-09-12 11:28:42 +00:00
Markus Opolka
d6270a9cad Merge pull request #163 from MarkErik/patch-2
doc/credentials
2023-09-06 16:26:06 +02:00
Mark
265b375fc1 Update README.md
Added paragraph listing the credentials used in example docker-compose files, with warning to change if use for anything beyond testing.

Edited Description for ADMIN_USER and ADMIN_NAME to clarify which parameters are used for signing into the admin panel. (Previously ADMIN_NAME's description included the word username, which is confusing as it is not the username used to sign into the admin panel)
2023-09-06 09:57:44 -04:00
Mark
9135f556f5 Update README.md
Fixing previous commit due to forgetting how to format and use Markdown!
2023-09-05 13:28:06 -04:00
Mark
8ec394c7af Update README.md
Save some time for people who want to test out LimeSurvey using the sample docker-compose files so that they don't need to go poking around the different files to find the example credentials used.
2023-09-05 13:15:06 -04:00
Markus Opolka
acfd7b529d Merge pull request #160 from martialblog/renovate/actions-checkout-4.x
Update actions/checkout action to v4
2023-09-05 09:36:55 +02:00
Markus Opolka
537c1e5313 Merge pull request #162 from martialblog/fix/urls
Update Download URLs
2023-09-05 09:36:44 +02:00
Markus Opolka
1c108c70df Fix URLs for Latest version 2023-09-05 09:23:38 +02:00
Markus Opolka
42e521a759 Fix URLs for LTS version 2023-09-05 09:11:46 +02:00
renovate[bot]
432b17d255 Update actions/checkout action to v4 2023-09-04 12:29:50 +00:00
Markus Opolka
215d95e43c Upgrading to Version 6.2.5+230828 2023-09-04 14:18:36 +02:00
Markus Opolka
03804c3b28 Upgrading to LTS Version 5.6.36+230830 2023-09-04 14:09:07 +02:00
Markus Opolka
0639806b11 Upgrading to Version 6.2.4+230825 2023-08-29 10:08:47 +02:00
Markus Opolka
5ad9f7debc Upgrading to LTS Version 5.6.35+230822 2023-08-29 10:08:22 +02:00
Markus Opolka
fb42a5ab24 Upgrading to Version 6.2.3+230821 2023-08-25 07:59:37 +02:00
Markus Opolka
7f0ad78dff Upgrading to Version 6.2.2+230814 2023-08-22 08:36:30 +02:00
Markus Opolka
46ce93f6a1 Upgrading to LTS Version 5.6.34+230816 2023-08-22 08:35:38 +02:00
Markus Opolka
888b04c584 Upgrading to Version 6.2.1+230807 2023-08-15 09:01:10 +02:00
Markus Opolka
340d96e0cd Upgrading to LTS Version 5.6.33+230808 2023-08-15 09:00:38 +02:00
Markus Opolka
7289e1b639 Upgrading to Version 6.2.0+230732 2023-08-08 10:26:03 +02:00
Markus Opolka
352fe09010 Upgrading to LTS Version 5.6.32+230731 2023-08-08 10:25:33 +02:00
Markus Opolka
1bcf07c1c3 Upgrading to Version 6.1.8+230717 2023-08-01 09:21:35 +02:00
Markus Opolka
8b7d3f1beb Upgrading to LTS Version 5.6.31+230718 2023-08-01 09:21:09 +02:00
Markus Opolka
dfa75801ca Upgrading to Version 6.1.7+230710 2023-07-21 05:43:37 +02:00
Markus Opolka
29f016d75d Upgrading to LTS Version 5.6.30+230711 2023-07-21 05:43:12 +02:00
Markus Opolka
b476026121 Upgrading to Version 6.1.6+230703 2023-07-11 08:33:47 +02:00
Markus Opolka
200585ed62 Upgrading to LTS Version 5.6.29+230704 2023-07-11 08:31:17 +02:00
Markus Opolka
b281762fd1 Merge pull request #156 from martialblog/feature/file-env
Add support for secrets in files
2023-07-11 08:29:36 +02:00
Markus Opolka
ecb0c6b188 Merge pull request #158 from martialblog/feature/ldapslibs
Add OS libraries for ldaps
2023-07-11 08:29:11 +02:00
Markus Opolka
6b109ed5bb Add OS libraries for ldaps 2023-07-09 12:09:45 +02:00
Markus Opolka
eca133264d Upgrading to Version 6.1.5+230626 2023-07-04 08:56:03 +02:00
Markus Opolka
98f042dea9 Upgrading to LTS Version 5.6.28+230627 2023-07-04 08:55:36 +02:00
Markus Opolka
749137e69c Add support for secrets in files 2023-06-28 17:11:56 +02:00
Markus Opolka
56238f9aa7 Upgrading to Version 6.1.4+230620 2023-06-28 16:41:31 +02:00
Markus Opolka
0cda131e2c Upgrading to LTS Version 5.6.27+230621 2023-06-28 16:41:00 +02:00
Markus Opolka
9ad9054c3a Merge pull request #155 from martialblog/fix/nc-pkg-name
Fix netcat package name
2023-06-28 16:40:04 +02:00
Markus Opolka
b0eabe4f28 Downgrade to PHP 8.0
- There were issues with PHP extensions not being installed
2023-06-28 16:38:45 +02:00
Markus Opolka
dfefb689e8 Fix netcat package name 2023-06-28 16:38:43 +02:00
Markus Opolka
1ab5496e40 Upgrading to LTS Version 5.6.26+230613 2023-06-22 08:28:45 +02:00
28 changed files with 295 additions and 163 deletions

View File

@@ -15,7 +15,7 @@ jobs:
- 6.0/fpm-alpine/Dockerfile - 6.0/fpm-alpine/Dockerfile
- 6.0/fpm/Dockerfile - 6.0/fpm/Dockerfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0 - uses: hadolint/hadolint-action@v3.1.0
with: with:
dockerfile: ${{ matrix.dockerfile }} dockerfile: ${{ matrix.dockerfile }}
@@ -31,24 +31,24 @@ jobs:
contents: read contents: read
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v3 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU' - name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
with: with:
platforms: 'arm64,arm' platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
with: with:
buildkitd-flags: --debug buildkitd-flags: --debug
- name: 'Log in to DockerHub' - name: 'Log in to DockerHub'
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }} password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: 'Apache variant metadata' - name: 'Apache variant metadata'
id: metadata-apache id: metadata-apache
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
@@ -59,7 +59,7 @@ jobs:
latest=true latest=true
suffix=-apache suffix=-apache
- name: 'Build and push latest Apache container images' - name: 'Build and push latest Apache container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 6.0/apache context: 6.0/apache
push: true push: true
@@ -69,7 +69,7 @@ jobs:
- name: 'FPM variant metadata' - name: 'FPM variant metadata'
id: metadata-fpm id: metadata-fpm
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
@@ -80,7 +80,7 @@ jobs:
latest=false latest=false
suffix=-fpm suffix=-fpm
- name: 'Build and push latest fpm container images' - name: 'Build and push latest fpm container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 6.0/fpm context: 6.0/fpm
push: true push: true
@@ -90,7 +90,7 @@ jobs:
- name: 'FPM Alpine variant metadata' - name: 'FPM Alpine variant metadata'
id: metadata-fpm-alpine id: metadata-fpm-alpine
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
@@ -101,7 +101,7 @@ jobs:
latest=false latest=false
suffix=-fpm-alpine suffix=-fpm-alpine
- name: 'Build and push latest fpm-alpine container images' - name: 'Build and push latest fpm-alpine container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 6.0/fpm-alpine context: 6.0/fpm-alpine
push: true push: true

View File

@@ -15,7 +15,7 @@ jobs:
- 5.0/fpm-alpine/Dockerfile - 5.0/fpm-alpine/Dockerfile
- 5.0/fpm/Dockerfile - 5.0/fpm/Dockerfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0 - uses: hadolint/hadolint-action@v3.1.0
with: with:
dockerfile: ${{ matrix.dockerfile }} dockerfile: ${{ matrix.dockerfile }}
@@ -31,24 +31,24 @@ jobs:
contents: read contents: read
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v3 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU' - name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
with: with:
platforms: 'arm64,arm' platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
with: with:
buildkitd-flags: --debug buildkitd-flags: --debug
- name: 'Log in to DockerHub' - name: 'Log in to DockerHub'
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }} password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: 'Apache variant metadata' - name: 'Apache variant metadata'
id: metadata-apache id: metadata-apache
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
@@ -59,7 +59,7 @@ jobs:
latest=false latest=false
suffix=-apache suffix=-apache
- name: 'Build and push LTS apache container images' - name: 'Build and push LTS apache container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 5.0/apache context: 5.0/apache
push: true push: true
@@ -69,7 +69,7 @@ jobs:
- name: 'FPM variant metadata' - name: 'FPM variant metadata'
id: metadata-fpm id: metadata-fpm
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
@@ -80,7 +80,7 @@ jobs:
latest=false latest=false
suffix=-fpm suffix=-fpm
- name: 'Build and push LTS fpm container images' - name: 'Build and push LTS fpm container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 5.0/fpm context: 5.0/fpm
push: true push: true
@@ -90,7 +90,7 @@ jobs:
- name: 'FPM Alpine variant metadata' - name: 'FPM Alpine variant metadata'
id: metadata-fpm-alpine id: metadata-fpm-alpine
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
@@ -101,7 +101,7 @@ jobs:
latest=false latest=false
suffix=-fpm-alpine suffix=-fpm-alpine
- name: 'Build and push LTS fpm-alpine container images' - name: 'Build and push LTS fpm-alpine container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 5.0/fpm-alpine context: 5.0/fpm-alpine
push: true push: true

View File

@@ -17,7 +17,7 @@ jobs:
- 6.0/fpm/Dockerfile - 6.0/fpm/Dockerfile
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0 - uses: hadolint/hadolint-action@v3.1.0
with: with:
dockerfile: ${{ matrix.dockerfile }} dockerfile: ${{ matrix.dockerfile }}

View File

@@ -22,18 +22,18 @@ jobs:
- linux/arm64 - linux/arm64
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v3 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU' - name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
with: with:
platforms: 'arm64,arm' platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
- name: 'Build Container images' - name: 'Build Container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 6.0/${{ matrix.context }} context: 6.0/${{ matrix.context }}
push: false push: false

View File

@@ -14,18 +14,18 @@ jobs:
- fpm - fpm
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v3 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU' - name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
with: with:
platforms: 'arm64,arm' platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
- name: 'Build Container images' - name: 'Build Container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 6.0/${{ matrix.context }} context: 6.0/${{ matrix.context }}
push: false push: false

View File

@@ -14,16 +14,16 @@ jobs:
- fpm - fpm
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v3 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU' - name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
- name: 'Build Container images' - name: 'Build Container images'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: 5.0/${{ matrix.context }} context: 5.0/${{ matrix.context }}
push: false push: false

View File

@@ -5,7 +5,9 @@ LABEL maintainer="markus@martialblog.de"
RUN set -ex; \ RUN set -ex; \
apt-get update; \ apt-get update; \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
netcat \ netcat-openbsd \
libldap-common \
libsasl2-modules \
; \ ; \
\ \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
@@ -79,9 +81,9 @@ RUN a2enmod headers rewrite remoteip; \
# Use the default production configuration # Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="5.6.25+230605" ARG version="5.6.43+231030"
ARG sha256_checksum="283d17ce1b230c584a2b86813d181df2d471e977e74d33da8bb7eb9adcdbd228" ARG sha256_checksum="4eedef15202ac771e08cb64a4c8e4083026da6ac1642f9a1ba952f8917e321f0"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data ARG USER=www-data
ARG LISTEN_PORT=8080 ARG LISTEN_PORT=8080
ENV LIMESURVEY_VERSION=$version ENV LIMESURVEY_VERSION=$version

View File

@@ -1,6 +1,23 @@
#!/bin/bash #!/bin/bash
# Entrypoint for Docker Container # Entrypoint for Docker Container
file_env() {
local v="$1"
local fv="${v}_FILE"
local default="${2:-}"
if [ "${!v:-}" ] && [ "${!fv:-}" ]; then
echo >&2 "$v and $fv are exclusive"
exit 1
fi
local val="$default"
if [ "${!v:-}" ]; then
val="${!v}"
elif [ "${!fv:-}" ]; then
val="$(< "${!fv}")"
fi
export "$v"="$val"
unset "$fv"
}
DB_TYPE=${DB_TYPE:-'mysql'} DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'} DB_HOST=${DB_HOST:-'mysql'}
@@ -9,19 +26,19 @@ DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'} DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'} DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'} DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'} DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} file_env 'ENCRYPT_KEYPAIR'
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} file_env 'ENCRYPT_PUBLIC_KEY'
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} file_env 'ENCRYPT_SECRET_KEY'
ENCRYPT_NONCE=${ENCRYPT_NONCE:-} file_env 'ENCRYPT_NONCE'
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-} file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'} ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-} file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-} BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-} PUBLIC_URL=${PUBLIC_URL:-}
@@ -35,12 +52,12 @@ DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"8080"} LISTEN_PORT=${LISTEN_PORT:-"8080"}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1 exit 1
fi fi
if [ -z "$ADMIN_PASSWORD" ]; then if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD' echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1 exit 1
fi fi
@@ -136,7 +153,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned' echo 'Info: security.php already provisioned'
else else
echo 'Info: Creating security.php' echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -2,7 +2,12 @@ FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
# Install OS dependencies # Install OS dependencies
RUN apk add --no-cache netcat-openbsd bash RUN set -ex; \
apk add --no-cache \
netcat-openbsd \
libsasl \
libldap \
bash
# Install PHP Plugins # Install PHP Plugins
# hadolint ignore=SC2086 # hadolint ignore=SC2086
@@ -46,9 +51,9 @@ RUN set -ex; \
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \ apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
apk del --no-cache --no-network .build-deps apk del --no-cache --no-network .build-deps
ARG version="5.6.25+230605" ARG version="5.6.43+231030"
ARG sha256_checksum="283d17ce1b230c584a2b86813d181df2d471e977e74d33da8bb7eb9adcdbd228" ARG sha256_checksum="4eedef15202ac771e08cb64a4c8e4083026da6ac1642f9a1ba952f8917e321f0"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data ARG USER=www-data
ENV LIMESURVEY_VERSION=$version ENV LIMESURVEY_VERSION=$version

View File

@@ -1,6 +1,23 @@
#!/bin/bash #!/bin/bash
# Entrypoint for Docker Container # Entrypoint for Docker Container
file_env() {
local v="$1"
local fv="${v}_FILE"
local default="${2:-}"
if [ "${!v:-}" ] && [ "${!fv:-}" ]; then
echo >&2 "$v and $fv are exclusive"
exit 1
fi
local val="$default"
if [ "${!v:-}" ]; then
val="${!v}"
elif [ "${!fv:-}" ]; then
val="$(< "${!fv}")"
fi
export "$v"="$val"
unset "$fv"
}
DB_TYPE=${DB_TYPE:-'mysql'} DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'} DB_HOST=${DB_HOST:-'mysql'}
@@ -9,19 +26,19 @@ DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'} DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'} DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'} DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'} DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} file_env 'ENCRYPT_KEYPAIR'
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} file_env 'ENCRYPT_PUBLIC_KEY'
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} file_env 'ENCRYPT_SECRET_KEY'
ENCRYPT_NONCE=${ENCRYPT_NONCE:-} file_env 'ENCRYPT_NONCE'
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-} file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'} ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-} file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-} BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-} PUBLIC_URL=${PUBLIC_URL:-}
@@ -33,12 +50,12 @@ DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0} DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1 exit 1
fi fi
if [ -z "$ADMIN_PASSWORD" ]; then if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD' echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1 exit 1
fi fi
@@ -129,7 +146,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned' echo 'Info: security.php already provisioned'
else else
echo 'Info: Creating security.php' echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -5,7 +5,9 @@ LABEL maintainer="markus@martialblog.de"
RUN set -ex; \ RUN set -ex; \
apt-get update; \ apt-get update; \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
netcat \ netcat-openbsd \
libldap-common \
libsasl2-modules \
; \ ; \
\ \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
@@ -66,9 +68,9 @@ RUN set -ex; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
ARG version="5.6.25+230605" ARG version="5.6.43+231030"
ARG sha256_checksum="283d17ce1b230c584a2b86813d181df2d471e977e74d33da8bb7eb9adcdbd228" ARG sha256_checksum="4eedef15202ac771e08cb64a4c8e4083026da6ac1642f9a1ba952f8917e321f0"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data ARG USER=www-data
ENV LIMESURVEY_VERSION=$version ENV LIMESURVEY_VERSION=$version

View File

@@ -1,6 +1,23 @@
#!/bin/bash #!/bin/bash
# Entrypoint for Docker Container # Entrypoint for Docker Container
file_env() {
local v="$1"
local fv="${v}_FILE"
local default="${2:-}"
if [ "${!v:-}" ] && [ "${!fv:-}" ]; then
echo >&2 "$v and $fv are exclusive"
exit 1
fi
local val="$default"
if [ "${!v:-}" ]; then
val="${!v}"
elif [ "${!fv:-}" ]; then
val="$(< "${!fv}")"
fi
export "$v"="$val"
unset "$fv"
}
DB_TYPE=${DB_TYPE:-'mysql'} DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'} DB_HOST=${DB_HOST:-'mysql'}
@@ -9,19 +26,19 @@ DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'} DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'} DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'} DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'} DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} file_env 'ENCRYPT_KEYPAIR'
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} file_env 'ENCRYPT_PUBLIC_KEY'
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} file_env 'ENCRYPT_SECRET_KEY'
ENCRYPT_NONCE=${ENCRYPT_NONCE:-} file_env 'ENCRYPT_NONCE'
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-} file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'} ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-} file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-} BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-} PUBLIC_URL=${PUBLIC_URL:-}
@@ -33,12 +50,12 @@ DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0} DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1 exit 1
fi fi
if [ -z "$ADMIN_PASSWORD" ]; then if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD' echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1 exit 1
fi fi
@@ -129,7 +146,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned' echo 'Info: security.php already provisioned'
else else
echo 'Info: Creating security.php' echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -1,11 +1,13 @@
FROM docker.io/php:8.1-apache FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \
apt-get update; \ apt-get update; \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
netcat \ netcat-openbsd \
libldap-common \
libsasl2-modules \
; \ ; \
\ \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
@@ -79,9 +81,9 @@ RUN a2enmod headers rewrite remoteip; \
# Use the default production configuration # Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="6.1.2+230606" ARG version="6.3.3+231106"
ARG sha256_checksum="5d92b793b98ad697ec65aa3bb615c49158b7578860ba7d352fe0102938daa37c" ARG sha256_checksum="5cec4e2ae2f03abafa3ebf5ef7b43b2d007ca30639a48ccea84e7d8f20441348"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data ARG USER=www-data
ARG LISTEN_PORT=8080 ARG LISTEN_PORT=8080
ENV LIMESURVEY_VERSION=$version ENV LIMESURVEY_VERSION=$version

View File

@@ -1,6 +1,23 @@
#!/bin/bash #!/bin/bash
# Entrypoint for Docker Container # Entrypoint for Docker Container
file_env() {
local v="$1"
local fv="${v}_FILE"
local default="${2:-}"
if [ "${!v:-}" ] && [ "${!fv:-}" ]; then
echo >&2 "$v and $fv are exclusive"
exit 1
fi
local val="$default"
if [ "${!v:-}" ]; then
val="${!v}"
elif [ "${!fv:-}" ]; then
val="$(< "${!fv}")"
fi
export "$v"="$val"
unset "$fv"
}
DB_TYPE=${DB_TYPE:-'mysql'} DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'} DB_HOST=${DB_HOST:-'mysql'}
@@ -9,19 +26,19 @@ DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'} DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'} DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'} DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'} DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} file_env 'ENCRYPT_KEYPAIR'
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} file_env 'ENCRYPT_PUBLIC_KEY'
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} file_env 'ENCRYPT_SECRET_KEY'
ENCRYPT_NONCE=${ENCRYPT_NONCE:-} file_env 'ENCRYPT_NONCE'
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-} file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'} ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-} file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-} BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-} PUBLIC_URL=${PUBLIC_URL:-}
@@ -35,12 +52,12 @@ DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"8080"} LISTEN_PORT=${LISTEN_PORT:-"8080"}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1 exit 1
fi fi
if [ -z "$ADMIN_PASSWORD" ]; then if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD' echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1 exit 1
fi fi
@@ -136,7 +153,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned' echo 'Info: security.php already provisioned'
else else
echo 'Info: Creating security.php' echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -1,8 +1,13 @@
FROM docker.io/php:8.1-fpm-alpine FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
# Install OS dependencies # Install OS dependencies
RUN apk add --no-cache netcat-openbsd bash RUN set -ex; \
apk add --no-cache \
netcat-openbsd \
libsasl \
libldap \
bash
# Install PHP Plugins # Install PHP Plugins
# hadolint ignore=SC2086 # hadolint ignore=SC2086
@@ -46,9 +51,9 @@ RUN set -ex; \
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \ apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
apk del --no-cache --no-network .build-deps apk del --no-cache --no-network .build-deps
ARG version="6.1.2+230606" ARG version="6.3.3+231106"
ARG sha256_checksum="5d92b793b98ad697ec65aa3bb615c49158b7578860ba7d352fe0102938daa37c" ARG sha256_checksum="5cec4e2ae2f03abafa3ebf5ef7b43b2d007ca30639a48ccea84e7d8f20441348"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data ARG USER=www-data
ENV LIMESURVEY_VERSION=$version ENV LIMESURVEY_VERSION=$version

View File

@@ -1,6 +1,23 @@
#!/bin/bash #!/bin/bash
# Entrypoint for Docker Container # Entrypoint for Docker Container
file_env() {
local v="$1"
local fv="${v}_FILE"
local default="${2:-}"
if [ "${!v:-}" ] && [ "${!fv:-}" ]; then
echo >&2 "$v and $fv are exclusive"
exit 1
fi
local val="$default"
if [ "${!v:-}" ]; then
val="${!v}"
elif [ "${!fv:-}" ]; then
val="$(< "${!fv}")"
fi
export "$v"="$val"
unset "$fv"
}
DB_TYPE=${DB_TYPE:-'mysql'} DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'} DB_HOST=${DB_HOST:-'mysql'}
@@ -9,19 +26,19 @@ DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'} DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'} DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'} DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'} DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} file_env 'ENCRYPT_KEYPAIR'
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} file_env 'ENCRYPT_PUBLIC_KEY'
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} file_env 'ENCRYPT_SECRET_KEY'
ENCRYPT_NONCE=${ENCRYPT_NONCE:-} file_env 'ENCRYPT_NONCE'
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-} file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'} ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-} file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-} BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-} PUBLIC_URL=${PUBLIC_URL:-}
@@ -33,12 +50,12 @@ DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0} DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1 exit 1
fi fi
if [ -z "$ADMIN_PASSWORD" ]; then if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD' echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1 exit 1
fi fi
@@ -129,7 +146,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned' echo 'Info: security.php already provisioned'
else else
echo 'Info: Creating security.php' echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -1,11 +1,13 @@
FROM docker.io/php:8.1-fpm FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \
apt-get update; \ apt-get update; \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
netcat \ netcat-openbsd \
libldap-common \
libsasl2-modules \
; \ ; \
\ \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
@@ -66,9 +68,9 @@ RUN set -ex; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
ARG version="6.1.2+230606" ARG version="6.3.3+231106"
ARG sha256_checksum="5d92b793b98ad697ec65aa3bb615c49158b7578860ba7d352fe0102938daa37c" ARG sha256_checksum="5cec4e2ae2f03abafa3ebf5ef7b43b2d007ca30639a48ccea84e7d8f20441348"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data ARG USER=www-data
ENV LIMESURVEY_VERSION=$version ENV LIMESURVEY_VERSION=$version

View File

@@ -1,6 +1,23 @@
#!/bin/bash #!/bin/bash
# Entrypoint for Docker Container # Entrypoint for Docker Container
file_env() {
local v="$1"
local fv="${v}_FILE"
local default="${2:-}"
if [ "${!v:-}" ] && [ "${!fv:-}" ]; then
echo >&2 "$v and $fv are exclusive"
exit 1
fi
local val="$default"
if [ "${!v:-}" ]; then
val="${!v}"
elif [ "${!fv:-}" ]; then
val="$(< "${!fv}")"
fi
export "$v"="$val"
unset "$fv"
}
DB_TYPE=${DB_TYPE:-'mysql'} DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'} DB_HOST=${DB_HOST:-'mysql'}
@@ -9,19 +26,19 @@ DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'} DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'} DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'} DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'} DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} file_env 'ENCRYPT_KEYPAIR'
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} file_env 'ENCRYPT_PUBLIC_KEY'
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} file_env 'ENCRYPT_SECRET_KEY'
ENCRYPT_NONCE=${ENCRYPT_NONCE:-} file_env 'ENCRYPT_NONCE'
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-} file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'} ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-} file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-} BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-} PUBLIC_URL=${PUBLIC_URL:-}
@@ -33,12 +50,12 @@ DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0} DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD' echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1 exit 1
fi fi
if [ -z "$ADMIN_PASSWORD" ]; then if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD' echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1 exit 1
fi fi
@@ -129,7 +146,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned' echo 'Info: security.php already provisioned'
else else
echo 'Info: Creating security.php' echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -115,10 +115,10 @@ If you are running LimeSurvey behind a Reverse Proxy you might need some additio
| DB_MYSQL_ENGINE | MySQL engine used for survey tables (values: MyISAM, InnoDB, default: MyISAM) | | DB_MYSQL_ENGINE | MySQL engine used for survey tables (values: MyISAM, InnoDB, default: MyISAM) |
| DB_USERNAME | Database user | | DB_USERNAME | Database user |
| DB_PASSWORD | Database user's password | | DB_PASSWORD | Database user's password |
| ADMIN_USER | Initial LimeSurvey Admin User | | ADMIN_USER | Initial LimeSurvey Admin Username (for signing into admin panel) |
| ADMIN_NAME | Initial LimeSurvey Admin Username | | ADMIN_NAME | Initial LimeSurvey Admin Name |
| ADMIN_EMAIL | Initial LimeSurvey Admin Email | | ADMIN_EMAIL | Initial LimeSurvey Admin Email |
| ADMIN_PASSWORD | Initial LimeSurvey Admin Password | | ADMIN_PASSWORD | Initial LimeSurvey Admin Password (for signing into admin panel) |
| PUBLIC_URL | Public URL for public scripts | | PUBLIC_URL | Public URL for public scripts |
| BASE_URL | Application Base URL | | BASE_URL | Application Base URL |
| URL_FORMAT | URL Format. path or get | | URL_FORMAT | URL Format. path or get |
@@ -133,12 +133,26 @@ If you are running LimeSurvey behind a Reverse Proxy you might need some additio
| ENCRYPT_SECRET_BOX_KEY | Data encryption secret box key (used in 5.0 and higher) | | ENCRYPT_SECRET_BOX_KEY | Data encryption secret box key (used in 5.0 and higher) |
| LISTEN_PORT | Apache: Listen port. Default: 8080 | | LISTEN_PORT | Apache: Listen port. Default: 8080 |
Sensitive information can also be passed `_FILE` to the following environment variables to load the values from the given file path. Example `DB_PASSWORD_FILE=/run/secrets/db_password`.
```
DB_PASSWORD_FILE
ADMIN_PASSWORD_FILE
ENCRYPT_KEYPAIR_FILE
ENCRYPT_PUBLIC_KEY_FILE
ENCRYPT_SECRET_KEY_FILE
ENCRYPT_NONCE_FILE
ENCRYPT_SECRET_BOX_KEY_FILE
```
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
# Running LimeSurvey with docker-compose # Running LimeSurvey with docker-compose
The easiest way to get a fully featured and functional setup is using a docker-compose file. Several examples are provided in the [repository](https://github.com/martialblog/docker-limesurvey). The easiest way to get a fully featured and functional setup is using a docker-compose file. Several examples are provided in the [repository](https://github.com/martialblog/docker-limesurvey).
**Hint:** You need to configure a database and Limesurvey password in the `docker-compose` files before starting. No defaults are provided to discourage production use with default passwords.
``` ```
docker-compose up docker-compose up

View File

@@ -8,8 +8,8 @@ services:
- lime-db - lime-db
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://my.survey.localhost:8080" # Example, Change this - "PUBLIC_URL=http://my.survey.localhost:8080" # Example, Change this
- "BASE_URL=http://my.survey.localhost:8080" # Example, Change this - "BASE_URL=http://my.survey.localhost:8080" # Example, Change this
proxy: proxy:
@@ -24,6 +24,6 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="

View File

@@ -7,12 +7,12 @@ services:
- DB_TYPE=pgsql - DB_TYPE=pgsql
- DB_PORT=5432 - DB_PORT=5432
- DB_HOST=db - DB_HOST=db
- DB_PASSWORD=example # - DB_PASSWORD=
- DB_NAME=limesurvey - DB_NAME=limesurvey
- DB_USERNAME=limesurvey - DB_USERNAME=limesurvey
- ADMIN_USER=admin - ADMIN_USER=admin
- ADMIN_NAME=Admin - ADMIN_NAME=Admin
- ADMIN_PASSWORD=example # - ADMIN_PASSWORD=
- ADMIN_EMAIL=admin@example.com - ADMIN_EMAIL=admin@example.com
- PUBLIC_URL=foobar.com - PUBLIC_URL=foobar.com
volumes: volumes:
@@ -25,11 +25,11 @@ services:
image: docker.io/postgres:10-alpine image: docker.io/postgres:10-alpine
restart: always restart: always
volumes: volumes:
- db-data:/var/lib/postgresql - db-data:/var/lib/postgresql/data
environment: environment:
- POSTGRES_USER=limesurvey - POSTGRES_USER=limesurvey
- POSTGRES_DB=limesurvey - POSTGRES_DB=limesurvey
- POSTGRES_PASSWORD=example # - POSTGRES_PASSWORD=
volumes: volumes:
limesurvey: limesurvey:

View File

@@ -14,8 +14,8 @@ services:
- lime-db - lime-db
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
lime-web: lime-web:
build: build:
context: nginx-certbot/ context: nginx-certbot/
@@ -44,7 +44,7 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="
volumes: volumes:
lime: lime:

View File

@@ -14,8 +14,8 @@ services:
- lime-db - lime-db
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
lime-web: lime-web:
image: docker.io/nginx:alpine image: docker.io/nginx:alpine
links: links:
@@ -32,7 +32,7 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="
volumes: volumes:
lime: lime:

View File

@@ -14,8 +14,8 @@ services:
- lime-db - lime-db
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
lime-web: lime-web:
image: docker.io/nginx image: docker.io/nginx
links: links:
@@ -30,7 +30,7 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="
volumes: volumes:
lime: lime:

View File

@@ -19,8 +19,8 @@ services:
- "DB_TYPE=pgsql" - "DB_TYPE=pgsql"
- "DB_PORT=5432" - "DB_PORT=5432"
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
lime-db: lime-db:
image: docker.io/postgres:10 image: docker.io/postgres:10
volumes: volumes:
@@ -28,7 +28,7 @@ services:
environment: environment:
- "POSTGRES_USER=limesurvey" - "POSTGRES_USER=limesurvey"
- "POSTGRES_DB=limesurvey" - "POSTGRES_DB=limesurvey"
- "POSTGRES_PASSWORD=secret" # - "POSTGRES_PASSWORD="
volumes: volumes:
db-data: db-data:

View File

@@ -15,8 +15,8 @@ services:
- lime-db - lime-db
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://my.survey.localhost:8888" - "PUBLIC_URL=http://my.survey.localhost:8888"
- "BASE_URL=http://my.survey.localhost:8888" - "BASE_URL=http://my.survey.localhost:8888"
traefik: traefik:
@@ -37,6 +37,5 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="

View File

@@ -19,8 +19,8 @@ services:
- "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro" - "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro"
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://localhost:8888/limesurvey" - "PUBLIC_URL=http://localhost:8888/limesurvey"
- "BASE_URL=http://localhost:8888/limesurvey" - "BASE_URL=http://localhost:8888/limesurvey"
traefik: traefik:
@@ -41,6 +41,5 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="

View File

@@ -15,8 +15,8 @@ services:
- "8080:8080" - "8080:8080"
environment: environment:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" # - "DB_PASSWORD="
- "ADMIN_PASSWORD=foobar" # - "ADMIN_PASSWORD="
# If you require an empty table prefix, use a space as the DB_TABLE_PREFIX # If you require an empty table prefix, use a space as the DB_TABLE_PREFIX
# - "DB_TABLE_PREFIX= " # - "DB_TABLE_PREFIX= "
lime-db: lime-db:
@@ -24,5 +24,5 @@ services:
environment: environment:
- "MYSQL_USER=limesurvey" - "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey" - "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret" # - "MYSQL_PASSWORD="
- "MYSQL_ROOT_PASSWORD=secret" # - "MYSQL_ROOT_PASSWORD="