Compare commits

...

53 Commits

Author SHA1 Message Date
Markus Opolka
70a86c2301 Upgrading to Version 5.2.7+211221 2022-01-05 10:00:39 +01:00
Markus Opolka
bcd42d3f63 Upgrading to LTS Version 3.27.30+211222 2022-01-05 09:59:14 +01:00
Markus Opolka
0dbe244a9c Upgrading to Version 5.2.6+211213 2021-12-22 09:18:51 +01:00
Markus Opolka
41520cf155 Upgrading to LTS Version 3.27.29+211214 2021-12-22 09:17:55 +01:00
Markus Opolka
4554f13f3d Upgrading to Version 5.2.5+211207 2021-12-14 13:53:27 +01:00
Markus Opolka
edea222851 Upgrading to LTS Version 3.27.28+211208 2021-12-14 13:52:25 +01:00
Markus Opolka
0e35fa6d05 Upgrading to Version 5.2.4+211129 2021-12-07 11:57:55 +01:00
Markus Opolka
0650b759c0 Upgrading to LTS Version 3.27.27+211130 2021-12-07 11:57:04 +01:00
Jérôme Rautureau
7f87925fa7 Limesurvey not compatible with 8.1 docker image (#110)
Limesurvey not compatible with 8.1 docker image yet

* Causes PHP 8.1 deprecation notices and other stuff
* Set all image to PHP 8.0. 

Co-authored-by: Jérôme Rautureau <Jérôme Rautureau jerome.rautureau@agglo-larochelle.fr>
2021-12-03 09:00:40 +01:00
Markus Opolka
71fade66fe Merge pull request #109 from le-zell/patch-1
Update entrypoint.sh
2021-12-02 10:15:01 +01:00
Jérôme Rautureau
1ff7ea366d Update entrypoint.sh
corrections on entrypoint.sh (missing doucle quotes)
2021-12-02 09:32:51 +01:00
Markus Opolka
fadbe68076 Merge pull request #108 from martialblog/traefik-example
Add a Traefik example with subpath
2021-12-02 08:29:04 +01:00
Markus Opolka
c73949610f Add Traefik docker-compose example 2021-12-02 08:20:25 +01:00
Markus Opolka
79aea85bfe Upgrading to Version 5.2.3+211122 2021-11-29 12:29:37 +01:00
Markus Opolka
453cb4b1eb Upgrading to LTS Version 3.27.26+211123 2021-11-29 12:28:41 +01:00
Jack Henschel
58ad34b0bd Merge pull request #107 from martialblog/jack-fix-tags
Fix image tag generation
2021-11-28 14:57:38 +01:00
Jack Henschel
8f1b452789 Fix image tag generation
Previously, only the immutable tags would get generated (i.e.
`5.1.2-1234`), but not the rolling tags (`5-apache`), due to a
limitation of the docker metadata action.
Thus, now we use manual regex matching instead.
See the linked issue for details.

Fixes https://github.com/martialblog/docker-limesurvey/issues/105
2021-11-28 11:06:23 +01:00
Markus Opolka
19a387488a Move entrypoint to /usr/local/bin (#104)
* Move entrypoint to /usr/local/bin

 - so that it's not served by the webserver
2021-11-25 07:56:11 +01:00
Markus Opolka
19a1a0d044 Extend example nginx.conf to include more protected paths (#103) 2021-11-25 07:55:47 +01:00
Mark
624a17b9fc Add depends_on for nginx so it waits until the limesurvey app is ready (#102)
By adding a depends_on in lime-web, it will wait for the limesurvey app to be ready to accept connections.
2021-11-24 09:30:51 +01:00
Markus Opolka
21bc2e44a5 Upgrading to Version 5.2.2+211115 2021-11-23 08:05:51 +01:00
Markus Opolka
644d144f08 Upgrading to LTS Version 3.27.25+211116 2021-11-23 08:04:56 +01:00
Markus Opolka
21d3ffceff Upgrading to Version 5.2.1+211111 2021-11-17 18:38:29 +01:00
Markus Opolka
18f6a97ed3 Upgrading to LTS Version 3.27.24+211108 2021-11-17 18:37:20 +01:00
Markus Opolka
5d9c116b64 Upgrading to Version 5.2.0+211110 2021-11-12 08:04:59 +01:00
Markus Opolka
4b02c3c26d Upgrading to LTS Version 3.27.23+211102 2021-11-12 08:03:42 +01:00
Markus Opolka
1676677dfc Update entrypoint to enable an empty table prefix (#100)
Update entrypoint to enable an empty table prefix

 - Who are we to dictate a table prefix
 - Makes it easier to migrate existing databases that don't have a prefix
2021-11-08 20:38:35 +01:00
Markus Opolka
681f421d6f Upgrading to Version 5.1.17+211025 2021-11-04 07:58:35 +01:00
Markus Opolka
baab608bd9 Upgrading to LTS Version 3.27.22+211026 2021-11-04 07:57:54 +01:00
Markus Opolka
7e1fa3eedd Upgrading to Version 5.1.16+211020 2021-10-25 11:05:13 +02:00
Markus Opolka
5a401f33f7 Upgrading to LTS Version 3.27.21+211021 2021-10-25 11:04:21 +02:00
Alex Sears
c3a3e77b76 Add encryption nonce and secret box key to 5.0 images (#99)
Add encryption nonce and secret box key to 5.0 images

Signed-off-by: Alex Sears <me@alexsears.com>
2021-10-25 08:52:32 +02:00
Markus Opolka
d6af8e0a03 Remove trivy scan (#97)
- It's too verbose and we currently don't have time to review everyting
2021-10-18 09:47:55 +02:00
Markus Opolka
633893f9a8 Upgrading to Version 5.1.14+210927 2021-10-13 19:04:47 +02:00
Markus Opolka
3cc111f903 Upgrading to LTS Version 3.27.19+210928 2021-10-13 19:03:52 +02:00
Alex Sears
0d572c645c Update entrypoint to allow customization of MySQL engine (#96)
* Update entrypoint to allow customization of MySQL engine
* Update fpm images to customize MySQL engine
* Update README for MySQL engine values and default
2021-10-13 11:37:05 +02:00
Markus Opolka
bca073774f Upgrading to Version 5.1.13+210923 2021-09-28 08:33:24 +02:00
Markus Opolka
e580c1ef45 Upgrading to LTS Version 3.27.18+210921 2021-09-28 08:32:11 +02:00
Markus Opolka
abe42af3e2 Upgrading to Version 5.1.11+210920 2021-09-21 07:59:13 +02:00
Markus Opolka
8a8a8db556 Upgrading to LTS Version 3.27.17+210911 2021-09-21 07:58:39 +02:00
Lucas Benevides
7e3a9ad099 Include Hints to use in limesurvey 3. (#90)
This makes more clear for those who want to use the LTS version of limesurvey, that some adaptations are needed.
2021-09-15 14:04:21 +02:00
Markus Opolka
a57da625d7 Upgrading to Version 5.1.9+210912 2021-09-10 09:50:37 +02:00
Markus Opolka
87da3cea63 Upgrading to LTS Version 3.27.16+210909 2021-09-10 09:49:45 +02:00
Markus Opolka
b845a1d47f Upgrading to Version 5.1.7+210908 2021-09-08 09:19:00 +02:00
Markus Opolka
9d35a25170 Upgrading to LTS Version 3.27.15+210907 2021-09-08 09:17:34 +02:00
Markus Opolka
83b9ff0695 Upgrading to Version 5.1.5+210830 2021-09-07 10:03:09 +02:00
Markus Opolka
d12196e622 Upgrading to LTS Version 3.27.14+210831 2021-09-07 10:02:27 +02:00
Arjun Srivastava
9abf028503 Bug fixes for certbot-nginx config. (#87)
- added missing $ for variable
- removed ``"``` which lead to cert bot incorrrectly reading "-d example.com" as a whole as an argument, and throwing an error
2021-08-30 13:10:14 +02:00
Markus Opolka
b93f79bd4e Upgrading to Version 5.1.3+210817 2021-08-24 08:07:10 +02:00
Markus Opolka
cbae03e396 Upgrading to LTS Version 3.27.12+210816 2021-08-24 08:06:23 +02:00
Markus Opolka
5915942a26 Upgrading to Version 5.1.2+210813 2021-08-17 17:13:04 +02:00
Markus Opolka
57e3b84970 Upgrading to LTS Version 3.27.11+210809 2021-08-17 17:12:23 +02:00
Markus Opolka
70631e85bd Upgrading to Version 5.0.13+210804 2021-08-12 07:58:46 +02:00
32 changed files with 154 additions and 95 deletions

View File

@@ -49,10 +49,11 @@ jobs:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
tags: | tags: |
type=semver,pattern={{raw}},suffix=-apache type=match,pattern=(.+),group=1
type=semver,pattern={{major}},suffix=-apache type=match,pattern=^(\d+),group=1
flavor: | flavor: |
latest=false latest=false
suffix=-apache
- name: 'Build and push latest Apache container images' - name: 'Build and push latest Apache container images'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
@@ -68,8 +69,11 @@ jobs:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
tags: | tags: |
type=semver,pattern={{version}},suffix=-fpm type=match,pattern=(.+),group=1
type=semver,pattern={{major}},suffix=-fpm type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm
- name: 'Build and push latest fpm container images' - name: 'Build and push latest fpm container images'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
@@ -85,8 +89,11 @@ jobs:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
tags: | tags: |
type=semver,pattern={{version}},suffix=-fpm-alpine type=match,pattern=(.+),group=1
type=semver,pattern={{major}},suffix=-fpm-alpine type=match,pattern=^(\d+),group=1
flavor: |
latest=false
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@v2 uses: docker/build-push-action@v2
with: with:

View File

@@ -49,10 +49,11 @@ jobs:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
tags: | tags: |
type=semver,pattern={{raw}},suffix=-apache type=match,pattern=(.+),group=1
type=semver,pattern={{major}},suffix=-apache type=match,pattern=^(\d+),group=1
flavor: | flavor: |
latest=false latest=false
suffix=-apache
- name: 'Build and push LTS apache container images' - name: 'Build and push LTS apache container images'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
@@ -68,8 +69,11 @@ jobs:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
tags: | tags: |
type=semver,pattern={{version}},suffix=-fpm type=match,pattern=(.+),group=1
type=semver,pattern={{major}},suffix=-fpm type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm
- name: 'Build and push LTS fpm container images' - name: 'Build and push LTS fpm container images'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
@@ -85,8 +89,11 @@ jobs:
images: | images: |
docker.io/martialblog/limesurvey docker.io/martialblog/limesurvey
tags: | tags: |
type=semver,pattern={{version}},suffix=-fpm-alpine type=match,pattern=(.+),group=1
type=semver,pattern={{major}},suffix=-fpm-alpine type=match,pattern=^(\d+),group=1
flavor: |
latest=false
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@v2 uses: docker/build-push-action@v2
with: with:

View File

@@ -32,21 +32,3 @@ jobs:
with: with:
image: docker.io/martialblog/limesurvey:5-${{ matrix.context }} image: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml config: tests/${{ matrix.context }}-tests.yaml
- name: 'Run vulnerability scanner'
uses: aquasecurity/trivy-action@master
with:
image-ref: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
format: 'template'
template: '@/contrib/sarif.tpl'
exit-code: '0'
# Since we are not in charge of the Application
vuln-type: 'os'
output: trivy-results-5-${{ matrix.context }}.sarif
severity: 'CRITICAL,HIGH'
- name: 'Upload Trivy scan results to GitHub'
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: trivy-results-5-${{ matrix.context }}.sarif
category: "${{ matrix.context }}"

View File

@@ -32,21 +32,3 @@ jobs:
with: with:
image: docker.io/martialblog/limesurvey:3-${{ matrix.context }} image: docker.io/martialblog/limesurvey:3-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml config: tests/${{ matrix.context }}-tests.yaml
- name: 'Run vulnerability scanner'
uses: aquasecurity/trivy-action@master
with:
image-ref: docker.io/martialblog/limesurvey:3-${{ matrix.context }}
format: 'template'
template: '@/contrib/sarif.tpl'
exit-code: '0'
# Since we are not in charge of the Application
vuln-type: 'os'
output: trivy-results-3-${{ matrix.context }}.sarif
severity: 'CRITICAL,HIGH'
- name: 'Upload Trivy scan results to GitHub'
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: trivy-results-3-${{ matrix.context }}.sarif
category: "${{ matrix.context }}"

View File

@@ -1,7 +1,7 @@
FROM php:7.4-apache FROM php:8.0-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.27.10+210803' ARG version='3.27.30+211222'
ARG sha256_checksum='c69889af28e8359e695d6769c0a1039c19bfc1daf8eadefa6fdff704d586ca82' ARG sha256_checksum='e082e83e01d895f3a343b2920392e621e020c08b6bfaf0e0a895207da4d59c54'
ARG USER=root ARG USER=root
ARG LISTEN_PORT=80 ARG LISTEN_PORT=80
@@ -75,8 +75,8 @@ RUN set -ex; \
chown -R www-data:www-data /var/www/html /etc/apache2 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 /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"] CMD ["apache2-foreground"]

View File

@@ -89,7 +89,7 @@ return array(
'username' => '$DB_USERNAME', 'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD', 'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET', 'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX', 'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
), ),
//'session' => array ( //'session' => array (
// 'class' => 'application.core.web.DbHttpSession', // 'class' => 'application.core.web.DbHttpSession',

View File

@@ -1,7 +1,7 @@
FROM php:7.4-fpm-alpine FROM php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.27.10+210803' ARG version='3.27.30+211222'
ARG sha256_checksum='c69889af28e8359e695d6769c0a1039c19bfc1daf8eadefa6fdff704d586ca82' ARG sha256_checksum='e082e83e01d895f3a343b2920392e621e020c08b6bfaf0e0a895207da4d59c54'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \
@@ -52,6 +52,6 @@ RUN set -ex; \
EXPOSE 9000 EXPOSE 9000
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"] CMD ["php-fpm"]

View File

@@ -82,7 +82,7 @@ return array(
'username' => '$DB_USERNAME', 'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD', 'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET', 'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX', 'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
), ),
//'session' => array ( //'session' => array (
// 'class' => 'application.core.web.DbHttpSession', // 'class' => 'application.core.web.DbHttpSession',

View File

@@ -1,7 +1,7 @@
FROM php:7.4-fpm FROM php:8.0-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.27.10+210803' ARG version='3.27.30+211222'
ARG sha256_checksum='c69889af28e8359e695d6769c0a1039c19bfc1daf8eadefa6fdff704d586ca82' ARG sha256_checksum='e082e83e01d895f3a343b2920392e621e020c08b6bfaf0e0a895207da4d59c54'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \
@@ -62,6 +62,6 @@ RUN set -ex; \
EXPOSE 9000 EXPOSE 9000
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"] CMD ["php-fpm"]

View File

@@ -82,7 +82,7 @@ return array(
'username' => '$DB_USERNAME', 'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD', 'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET', 'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX', 'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
), ),
//'session' => array ( //'session' => array (
// 'class' => 'application.core.web.DbHttpSession', // 'class' => 'application.core.web.DbHttpSession',

View File

@@ -1,4 +1,4 @@
FROM php:7.4-apache FROM php:8.0-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.6.3+210518' ARG version='4.6.3+210518'
ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2' ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2'

View File

@@ -10,6 +10,7 @@ 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_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
@@ -106,6 +107,7 @@ return array(
'publicurl'=>'$PUBLIC_URL', 'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG, 'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL, 'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
) )
); );

View File

@@ -1,4 +1,4 @@
FROM php:7.4-fpm-alpine FROM php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.6.3+210518' ARG version='4.6.3+210518'
ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2' ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2'

View File

@@ -10,6 +10,7 @@ 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_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
@@ -99,6 +100,7 @@ return array(
'publicurl'=>'$PUBLIC_URL', 'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG, 'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL, 'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
) )
); );

View File

@@ -1,4 +1,4 @@
FROM php:7.4-fpm FROM php:8.0-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.6.3+210518' ARG version='4.6.3+210518'
ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2' ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2'

View File

@@ -10,6 +10,7 @@ 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_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
@@ -99,6 +100,7 @@ return array(
'publicurl'=>'$PUBLIC_URL', 'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG, 'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL, 'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
) )
); );

View File

@@ -1,7 +1,7 @@
FROM php:8-apache FROM php:8.0-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='5.0.12+210729' ARG version='5.2.7+211221'
ARG sha256_checksum='fb39d81fefeebe4fbc0cd7fc9c3f656b073d39c15db5ac1d1ba443cbe7b722e7' ARG sha256_checksum='79f9b2d48c74bfa121fad079fb7f2a6fff79c44ffb2c048a27bc2248f35af258'
ARG USER=www-data ARG USER=www-data
ARG LISTEN_PORT=8080 ARG LISTEN_PORT=8080
@@ -78,8 +78,8 @@ RUN set -ex; \
EXPOSE $LISTEN_PORT EXPOSE $LISTEN_PORT
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"] CMD ["apache2-foreground"]

View File

@@ -10,10 +10,13 @@ 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_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-}
ENCRYPT_NONCE=${ENCRYPT_NONCE:-}
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-}
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
@@ -93,7 +96,7 @@ return array(
'username' => '$DB_USERNAME', 'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD', 'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET', 'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX', 'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
), ),
//'session' => array ( //'session' => array (
// 'class' => 'application.core.web.DbHttpSession', // 'class' => 'application.core.web.DbHttpSession',
@@ -113,6 +116,7 @@ return array(
'publicurl'=>'$PUBLIC_URL', 'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG, 'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL, 'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
) )
); );
@@ -140,6 +144,8 @@ else
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR'; \$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY'; \$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY'; \$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config; return \$config;
EOF EOF
else else

View File

@@ -1,7 +1,7 @@
FROM php:8-fpm-alpine FROM php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='5.0.12+210729' ARG version='5.2.7+211221'
ARG sha256_checksum='fb39d81fefeebe4fbc0cd7fc9c3f656b073d39c15db5ac1d1ba443cbe7b722e7' ARG sha256_checksum='79f9b2d48c74bfa121fad079fb7f2a6fff79c44ffb2c048a27bc2248f35af258'
ARG USER=www-data ARG USER=www-data
# Install OS dependencies # Install OS dependencies
@@ -54,7 +54,7 @@ RUN set -ex; \
EXPOSE 9000 EXPOSE 9000
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"] CMD ["php-fpm"]

View File

@@ -10,10 +10,13 @@ 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_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-}
ENCRYPT_NONCE=${ENCRYPT_NONCE:-}
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-}
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
@@ -86,7 +89,7 @@ return array(
'username' => '$DB_USERNAME', 'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD', 'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET', 'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX', 'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
), ),
//'session' => array ( //'session' => array (
// 'class' => 'application.core.web.DbHttpSession', // 'class' => 'application.core.web.DbHttpSession',
@@ -106,6 +109,7 @@ return array(
'publicurl'=>'$PUBLIC_URL', 'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG, 'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL, 'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
) )
); );
@@ -133,6 +137,8 @@ else
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR'; \$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY'; \$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY'; \$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config; return \$config;
EOF EOF
else else

View File

@@ -1,7 +1,7 @@
FROM php:8-fpm FROM php:8.0-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='5.0.12+210729' ARG version='5.2.7+211221'
ARG sha256_checksum='fb39d81fefeebe4fbc0cd7fc9c3f656b073d39c15db5ac1d1ba443cbe7b722e7' ARG sha256_checksum='79f9b2d48c74bfa121fad079fb7f2a6fff79c44ffb2c048a27bc2248f35af258'
ARG USER=www-data ARG USER=www-data
# Install OS dependencies # Install OS dependencies
@@ -63,7 +63,7 @@ RUN set -ex; \
EXPOSE 9000 EXPOSE 9000
WORKDIR /var/www/html WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"] CMD ["php-fpm"]

View File

@@ -10,10 +10,13 @@ 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_PASSWORD=${DB_PASSWORD:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-} ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-} ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-} ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-}
ENCRYPT_NONCE=${ENCRYPT_NONCE:-}
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-}
ADMIN_USER=${ADMIN_USER:-'admin'} ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'} ADMIN_NAME=${ADMIN_NAME:-'admin'}
@@ -86,7 +89,7 @@ return array(
'username' => '$DB_USERNAME', 'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD', 'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET', 'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX', 'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
), ),
//'session' => array ( //'session' => array (
// 'class' => 'application.core.web.DbHttpSession', // 'class' => 'application.core.web.DbHttpSession',
@@ -106,6 +109,7 @@ return array(
'publicurl'=>'$PUBLIC_URL', 'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG, 'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL, 'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
) )
); );
@@ -133,6 +137,8 @@ else
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR'; \$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY'; \$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY'; \$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config; return \$config;
EOF EOF
else else
@@ -153,7 +159,7 @@ if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
else else
echo '' echo ''
echo 'Running console.php install' echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME $ADMIN_EMAIL" php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi fi
exec "$@" exec "$@"

View File

@@ -87,6 +87,8 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
## Traefik example ## Traefik example
**Hint**: if you want to deploy LimeSurvey on a sub-path (e.g. https://example.com/limesurvey) you have to set the BASE_URL and adjust the Containers Webservers. See the docker-compose Traefik example in the repository.
``` ```
# BASE_URL = /limesurvey # BASE_URL = /limesurvey
"traefik.http.routers.limesurvey.rule=PathPrefix(`/limesurvey`)", "traefik.http.routers.limesurvey.rule=PathPrefix(`/limesurvey`)",
@@ -103,7 +105,8 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
| DB_PORT | Database server port | | DB_PORT | Database server port |
| DB_SOCK | Database unix socket instead of host/port | | DB_SOCK | Database unix socket instead of host/port |
| DB_NAME | Database name | | DB_NAME | Database name |
| DB_TABLE_PREFIX | Database table prefix | | DB_TABLE_PREFIX | Database table prefix; set this to a single whitespace if you don't want a table prefix. |
| 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 User |
@@ -120,6 +123,8 @@ 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 |
| ENCRYPT_NONCE | Data encryption nonce (used in 5.0) |
| ENCRYPT_SECRET_BOX_KEY | Data encryption secret box key (used in 5.0) |
| LISTEN_PORT | Apache: Listen port. Default: 8080 | | LISTEN_PORT | Apache: Listen port. Default: 8080 |
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

@@ -20,6 +20,8 @@ services:
image: nginx:alpine image: nginx:alpine
links: links:
- limesurvey - limesurvey
depends_on:
- limesurvey
ports: ports:
- "8080:80" - "8080:80"
volumes: volumes:

View File

@@ -2,6 +2,7 @@ version: "3.0"
services: services:
limesurvey: limesurvey:
build: build:
# Hint: Change it to 3.0/apache/ if you want to use LimeSurvey 3.*
context: 5.0/apache/ context: 5.0/apache/
dockerfile: Dockerfile dockerfile: Dockerfile
volumes: volumes:
@@ -12,6 +13,7 @@ services:
depends_on: depends_on:
- lime-db - lime-db
ports: ports:
# Hint: Change it to 80:8080 if you are using LimeSurvey 3.*
- "8080:8080" - "8080:8080"
environment: environment:
- "DB_TYPE=pgsql" - "DB_TYPE=pgsql"

View File

@@ -0,0 +1,46 @@
version: "3.0"
services:
limesurvey:
build:
context: 5.0/apache/
dockerfile: Dockerfile
labels:
traefik.enable: 'true'
traefik.http.routers.limesurvey-http-router.entrypoints: "http"
traefik.http.routers.limesurvey-http-router.rule: "PathPrefix(`/limesurvey`)"
traefik.http.services.limesurvey-service.loadbalancer.server.port: "8080"
links:
- lime-db
depends_on:
- lime-db
volumes:
# Unfortunately the StripPrefix Function in Traefik won't work;
# Meaning, we will have to set 'Alias /limesurvey "/var/www/html"' in the Apache Config
- "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro"
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
- "PUBLIC_URL=http://localhost:8888/limesurvey"
- "BASE_URL=http://localhost:8888/limesurvey"
traefik:
image: "traefik:v2.5"
container_name: "traefik"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.http.address=:8888"
ports:
- "8888:8888"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
lime-db:
image: mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"

View File

@@ -17,6 +17,8 @@ services:
- "DB_HOST=lime-db" - "DB_HOST=lime-db"
- "DB_PASSWORD=secret" - "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar" - "ADMIN_PASSWORD=foobar"
# If you require an empty table prefix, use a space as the DB_TABLE_PREFIX
# - "DB_TABLE_PREFIX= "
lime-db: lime-db:
image: mysql:5.7 image: mysql:5.7
environment: environment:

View File

@@ -1,7 +1,7 @@
<VirtualHost *:8080> <VirtualHost *:8080>
ServerAdmin foo@bar.com ServerAdmin foo@bar.com
DocumentRoot /var/www/html DocumentRoot /var/www/html
Alias /lime "/var/www/html" Alias /limesurvey "/var/www/html"
<Directory /> <Directory />
Options FollowSymLinks Options FollowSymLinks

View File

@@ -19,7 +19,7 @@ http {
location / { location / {
try_files $uri /index.php?$args; try_files $uri /index.php?$args;
} }
location ~ ^/(protected|framework|themes/\w+/views) { location ~ ^/(protected|application|framework|themes/\w+/views) {
deny all; deny all;
} }
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {

View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
cert_path=/etc/letsencrypt/live/$(echo "$HOSTNAMES" | awk '{print $1}') cert_path=/etc/letsencrypt/live/$(echo "$HOSTNAMES" | awk '{print $1}')
mkdir -p cert_path mkdir -p $cert_path
# if there is no certificate yet, get one # if there is no certificate yet, get one
email="--email $CERT_EMAIL" email="--email $CERT_EMAIL"
@@ -19,7 +19,7 @@ then
echo "Getting new certificate..." echo "Getting new certificate..."
/usr/bin/curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > /etc/letsencrypt/options-ssl-nginx.conf /usr/bin/curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > /etc/letsencrypt/options-ssl-nginx.conf
/usr/bin/curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > /etc/letsencrypt/ssl-dhparams.pem /usr/bin/curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > /etc/letsencrypt/ssl-dhparams.pem
/usr/bin/certbot certonly --standalone "$names" --agree-tos "$email" /usr/bin/certbot certonly --standalone $names --agree-tos "$email"
fi fi
nginx -g "daemon off;" nginx -g "daemon off;"

View File

@@ -9,7 +9,7 @@ fileContentTests:
path: '/var/www/html/admin/index.php' path: '/var/www/html/admin/index.php'
expectedContents: ['LimeSurvey'] expectedContents: ['LimeSurvey']
- name: 'Entrypoint file content' - name: 'Entrypoint file content'
path: '/var/www/html/entrypoint.sh' path: '/usr/local/bin/entrypoint.sh'
expectedContents: ['console.php', 'ADMIN_USER'] expectedContents: ['console.php', 'ADMIN_USER']
fileExistenceTests: fileExistenceTests:

View File

@@ -9,7 +9,7 @@ fileContentTests:
path: '/var/www/html/admin/index.php' path: '/var/www/html/admin/index.php'
expectedContents: ['LimeSurvey'] expectedContents: ['LimeSurvey']
- name: 'Entrypoint file content' - name: 'Entrypoint file content'
path: '/var/www/html/entrypoint.sh' path: '/usr/local/bin/entrypoint.sh'
expectedContents: ['console.php', 'ADMIN_USER'] expectedContents: ['console.php', 'ADMIN_USER']
fileExistenceTests: fileExistenceTests: