Compare commits

...

696 Commits

Author SHA1 Message Date
Markus Opolka
0c83353d84 Upgrading to LTS Version 5.6.56+240227 2024-03-11 16:41:47 +01:00
Markus Opolka
c4c919b92c Upgrading to Version 6.4.9+240226 2024-02-28 16:10:18 +01:00
Markus Opolka
e0ceb06881 Upgrading to Version 6.4.8+240221 2024-02-27 19:52:29 +01:00
Markus Opolka
5b80aa6c06 Upgrading to LTS Version 5.6.55+240220 2024-02-27 19:49:58 +01:00
Markus Opolka
5318ab5f54 Upgrading to Version 6.4.6+240212 2024-02-20 08:18:21 +01:00
Markus Opolka
ddb0a1513c Upgrading to LTS Version 5.6.54+240206 2024-02-20 08:18:01 +01:00
Markus Opolka
79928f4075 Upgrading to Version 6.4.5+240205 2024-02-15 12:10:23 +01:00
Markus Opolka
b297c16f7c Upgrading to Version 6.4.4+240130 2024-02-06 20:48:41 +01:00
Markus Opolka
322cf3732e Upgrading to LTS Version 5.6.53+240131 2024-02-06 20:48:16 +01:00
Markus Opolka
22fc8f2d56 Upgrading to Version 6.4.3+240122 2024-01-30 15:00:37 +01:00
Markus Opolka
e4facd925f Upgrading to LTS Version 5.6.52+240123 2024-01-30 15:00:18 +01:00
Markus Opolka
80098d872b Upgrading to Version 6.4.2+240115 2024-01-23 08:15:35 +01:00
Markus Opolka
23f8264caa Upgrading to LTS Version 5.6.51+240116 2024-01-23 08:13:52 +01:00
Markus Opolka
ef7111d27c Upgrading to Version 6.4.1+240108 2024-01-16 10:34:39 +01:00
Markus Opolka
73ff270819 Upgrading to LTS Version 5.6.50+240109 2024-01-16 10:34:18 +01:00
Markus Opolka
b8ef3a9e7c Upgrading to Version 6.4.0+231218 2024-01-09 09:07:44 +01:00
Markus Opolka
73231ca1e2 Upgrading to LTS Version 5.6.49+231212 2024-01-09 09:07:26 +01:00
Markus Opolka
121fa8db27 Upgrading to Version 6.3.9+231211 2023-12-19 08:17:07 +01:00
Markus Opolka
d7ce8fa25b Upgrading to Version 6.3.8+231204 2023-12-12 08:56:05 +01:00
Markus Opolka
930909ced0 Upgrading to LTS Version 5.6.48+231205 2023-12-12 08:55:05 +01:00
Markus Opolka
7343b66cba Merge pull request #181 from edgarrmondragon/edgarrmondragom/5.6.46+231121-and-6.3.6+231120
Upgrade to 5.6.46+231121 and 6.3.6+231120
2023-11-29 07:53:24 +01:00
Edgar Ramírez Mondragón
55c7a955bc Upgrade to 5.6.46+231121 and 6.3.6+231120 2023-11-28 19:46:11 -06:00
Markus Opolka
02e8715589 Upgrading to Version 6.3.5+231113 2023-11-22 08:00:01 +01:00
Markus Opolka
b19d599e78 Upgrading to LTS Version 5.6.45+231114 2023-11-22 07:59:37 +01:00
Markus Opolka
98db5c64e9 Merge pull request #177 from edgarrmondragon/bump-php
Bump PHP to 8.1 in 6.x images
2023-11-15 16:31:01 +01:00
Markus Opolka
cbc70e8d1f Upgrading to Version 6.3.4+231108 2023-11-14 08:05:58 +01:00
Markus Opolka
fbd0af36a9 Upgrading to LTS Version 5.6.44+231107 2023-11-14 07:59:57 +01:00
Edgar Ramírez Mondragón
cf6a81b1f0 Use PHP 8.1 2023-11-10 10:07:03 -06:00
Markus Opolka
7f9fb7c962 Merge pull request #178 from martialblog/extend-apt-mark
Improve removal of dev packages
2023-11-10 14:34:53 +01:00
Markus Opolka
8b727d954f Improve removal of dev packages
- Due to the PHP libs being at /lib in newer Image versions
   the apt-mark manual wouldn't catch them and remove important libraries.
   This extends the marking of required packages.
2023-11-10 14:28:49 +01:00
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
Markus Opolka
ab67bbc8c6 Upgrading to Version 6.1.2+230606 2023-06-13 12:23:46 +02:00
Markus Opolka
9ea27fd9fe Upgrading to LTS Version 5.6.25+230605 2023-06-13 12:23:18 +02:00
Markus Opolka
4be9f37601 Upgrading to Version 6.1.1+230530 2023-06-09 13:35:14 +02:00
Markus Opolka
45f5178e3b Upgrading to LTS Version 5.6.24+230531 2023-06-09 13:34:41 +02:00
Markus Opolka
f772b7a05f Upgrading to Version 3.28.59+230517 2023-06-09 13:34:16 +02:00
Markus Opolka
5c8cd4570a Update structure tests 2023-06-09 13:27:50 +02:00
Markus Opolka
66f433e1d0 Fix linting issues 2023-06-09 13:18:56 +02:00
J0WI
52ee67675a Drop build dependencies from Debian variant (#153) 2023-06-09 13:14:20 +02:00
Markus Opolka
6d3bc51ebc Fix linting issues in alpine Dockerfiles 2023-06-09 12:19:04 +02:00
J0WI
0c28e5bbf9 Drop build dependencies from Alpine variant (#152) 2023-06-09 12:03:35 +02:00
Markus Opolka
23e6fa6f88 Upgrading to Version 6.0.7+230515 2023-05-24 08:45:36 +02:00
Markus Opolka
4e30695b0b Upgrading to LTS Version 5.6.21+230518 2023-05-24 08:44:50 +02:00
Markus Opolka
f290fc7f1c Upgrading to Version 6.0.6+230508 2023-05-19 09:03:27 +02:00
Markus Opolka
20c1fafdf6 Upgrading to LTS Version 5.6.20+230516 2023-05-19 09:03:02 +02:00
Markus Opolka
281cc199aa Upgrading to Version 6.0.5+230502 2023-05-09 08:36:05 +02:00
Markus Opolka
d15b0a2693 Upgrading to LTS Version 5.6.18+230503 2023-05-09 08:35:37 +02:00
Markus Opolka
164767fe97 Upgrading to Version 6.0.4+230427 2023-05-03 20:17:42 +02:00
Markus Opolka
0478c67f4a Upgrading to LTS Version 5.6.17+230426 2023-05-03 20:17:05 +02:00
Markus Opolka
07fea8dfcc Upgrading to Version 6.0.2+230417 2023-04-25 10:06:46 +02:00
Markus Opolka
4250f57653 Upgrading to LTS Version 5.6.16+230418 2023-04-25 10:06:20 +02:00
Markus Opolka
919627c293 Upgrading to Version 3.28.56+230404 2023-04-25 09:56:02 +02:00
Markus Opolka
964ed7b38e Fix LTS platform build (#150) 2023-04-21 08:22:03 +02:00
Markus Opolka
9b1ee53a4a Upgrading to LTS Version 5.6.15+230412 2023-04-20 08:23:23 +02:00
Markus Opolka
d3c5ed4e35 Fix hadolint Action config 2023-04-18 15:12:00 +02:00
Markus Opolka
b1b32c2380 Upgrading to Version 6.0.1+230411 2023-04-18 09:37:50 +02:00
renovate[bot]
f79d1e3a9d Update hadolint/hadolint-action action to v3 (#147)
* Update hadolint/hadolint-action action to v3

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Opolka <markus.opolka@netways.de>
2023-04-14 10:28:31 +02:00
Markus Opolka
bfa8bbb85a Merge pull request #146 from martialblog/renovate/docker-build-push-action-4.x
Update docker/build-push-action action to v4
2023-04-13 13:47:50 +02:00
Markus Opolka
9ff5cdf1cb Merge pull request #145 from martialblog/renovate/plexsystems-container-structure-test-action-0.x
Update plexsystems/container-structure-test-action action to v0.3.0
2023-04-13 13:17:49 +02:00
renovate[bot]
3552c1b90d Update docker/build-push-action action to v4 2023-04-13 11:04:01 +00:00
renovate[bot]
76a7f28105 Update plexsystems/container-structure-test-action action to v0.3.0 2023-04-13 11:03:54 +00:00
Markus Opolka
36d49a4fbb Merge pull request #143 from martialblog/renovate/hadolint-hadolint-action-1.x
Update hadolint/hadolint-action action to v1.7.0
2023-04-13 08:17:04 +02:00
renovate[bot]
b9c9c3f854 Update hadolint/hadolint-action action to v1.7.0 2023-04-13 06:07:46 +00:00
renovate[bot]
6e06dec555 Configure Renovate (#98)
* Add renovate.json

---------

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Markus Opolka <markus@martialblog.de>
2023-04-13 08:07:09 +02:00
Markus Opolka
b9627cda92 Merge pull request #141 from martialblog/chore/update-gh-actions
Update GitHub Actions
2023-04-12 13:05:19 +02:00
Markus Opolka
0d5d7e6e4d Update GitHub Actions 2023-04-12 13:00:38 +02:00
Markus Opolka
eb3f48b0dc Merge pull request #139 from martialblog/release-6
Update Repository for new 6.0 Release
2023-04-12 11:40:39 +02:00
Markus Opolka
2f82a36dc0 Move GitHub Actions for ARM for separate file
- We will include these long running jobs only on special branches
2023-04-12 11:37:36 +02:00
Markus Opolka
128e7b4595 Update GitHub Action versions
- Mainly due to Node 12 deprecation
2023-04-12 11:06:12 +02:00
Markus Opolka
663bf2f03b Add ARM build in GitHub Actions
- Hint: Tried to use the plattform parameter of the build-push-action,
   however this failed with an error in the Jobs.
   Therefore, I used a matrix with the platforms.
 - The ARM build takes a long time.
2023-04-12 10:57:51 +02:00
Markus Opolka
0732424f79 Update Repository for new 6.0 Release 2023-04-12 10:54:54 +02:00
Markus Opolka
1c709f7780 Upgrading to Version 5.6.14+230403 2023-04-05 14:29:53 +02:00
Markus Opolka
b4ec3009b6 Upgrading to LTS Version 3.28.55+230328 2023-04-05 14:29:27 +02:00
Markus Opolka
5150ab73cf Upgrading to Version 5.6.12+230327 2023-03-29 18:50:47 +02:00
Markus Opolka
2bf13290c7 Upgrading to LTS Version 3.28.54+230321 2023-03-29 18:48:39 +02:00
Markus Opolka
6014fc72df Upgrading to Version 5.6.10+230313 2023-03-21 14:32:35 +01:00
Markus Opolka
25ab1cb849 Upgrading to LTS Version 3.28.53+230314 2023-03-21 14:31:33 +01:00
Markus Opolka
d777bfc285 Updat nginx.conf example 2023-03-20 15:01:06 +01:00
Markus Opolka
2498c148e3 Merge pull request #137 from martialblog/docs/apache-proxy
Add docker-compose example with Apache reverse-proxy
2023-03-16 16:28:48 +01:00
Markus Opolka
c1e931ee8f Update Traefik Examples
Acked-by: Markus Opolka <markus.opolka@netways.de>
2023-03-16 16:23:31 +01:00
Markus Opolka
e694afe33e Add docker-compose example with Apache reverse-proxy 2023-03-16 15:34:59 +01:00
Markus Opolka
8ecd8012c5 Upgrading to Version 5.6.9+230306 2023-03-14 08:34:42 +01:00
Markus Opolka
e3671f0dc2 Upgrading to LTS Version 3.28.52+230307 2023-03-14 08:34:13 +01:00
Markus Opolka
8d77a697df Upgrading to Version 5.6.8+230227 2023-03-06 20:00:13 +01:00
Markus Opolka
8e78295423 Upgrading to LTS Version 3.28.51+230228 2023-03-06 19:59:33 +01:00
Markus Opolka
1bbcede235 Upgrading to Version 5.6.7+230222 2023-03-01 08:38:59 +01:00
Markus Opolka
2fb47a0151 Upgrading to LTS Version 3.28.50+230221 2023-03-01 08:38:27 +01:00
Markus Opolka
827fb0f6e0 Upgrading to Version 5.6.6+230220 2023-02-21 17:10:43 +01:00
Markus Opolka
32bd800846 Upgrading to LTS Version 3.28.49+230215 2023-02-21 17:10:18 +01:00
Markus Opolka
6709d9964f Upgrading to Version 5.6.4+230206 2023-02-14 12:48:11 +01:00
Markus Opolka
24c3f9fcd2 Upgrading to LTS Version 3.28.48+230207 2023-02-14 12:47:30 +01:00
Markus Opolka
f80cd5ce70 Upgrading to Version 5.6.3+230130 2023-02-06 16:35:45 +01:00
Markus Opolka
dae147ad6f Upgrading to LTS Version 3.28.47+230131 2023-02-06 16:35:15 +01:00
Markus Opolka
ae6de116f2 Upgrading to Version 5.6.2+230125 2023-01-31 19:08:54 +01:00
Markus Opolka
8b2b966ab2 Upgrading to LTS Version 3.28.46+230124 2023-01-31 19:08:14 +01:00
Markus Opolka
b2425303f6 Upgrading to Version 5.6.1+230123 2023-01-25 08:07:46 +01:00
Markus Opolka
ccb8047f80 Upgrading to Version 5.6.0+230116 2023-01-24 09:08:00 +01:00
Markus Opolka
66b6a31821 Upgrading to LTS Version 3.28.45+230117 2023-01-24 09:07:35 +01:00
Markus Opolka
bd81c0b44a Upgrading to Version 5.5.2+230109 2023-01-16 15:04:50 +01:00
Markus Opolka
59986c3205 Upgrading to LTS Version 3.28.44+230110 2023-01-16 15:04:28 +01:00
Markus Opolka
269774947b Upgrading to Version 5.5.1+230103 2023-01-10 08:06:09 +01:00
Markus Opolka
64f001f58c Upgrading to LTS Version 3.28.43+221221 2023-01-10 08:05:37 +01:00
Markus Opolka
142839f135 Upgrading to Version 5.5.0+221219 2023-01-04 08:52:47 +01:00
Markus Opolka
74f928b609 Upgrading to Version 5.4.15+221212 2022-12-20 08:26:56 +01:00
Markus Opolka
4877b85128 Upgrading to Version 5.4.14+221205 2022-12-12 20:33:59 +01:00
Markus Opolka
908a2817fb Upgrading to LTS Version 3.28.41+221206 2022-12-12 20:33:34 +01:00
Markus Opolka
618b89cadb Upgrading to Version 5.4.13+221128 2022-12-06 12:13:48 +01:00
Markus Opolka
da706033f6 Upgrading to LTS Version 3.28.40+221129 2022-12-06 12:13:26 +01:00
Markus Opolka
ee98ccea0c Upgrading to Version 5.4.12+221121 2022-11-28 12:22:05 +01:00
Markus Opolka
e3dcead592 Upgrading to LTS Version 3.28.39+221122 2022-11-28 12:21:35 +01:00
Markus Opolka
3c7de94fdd Upgrading to Version 5.4.11+221114 2022-11-22 08:57:51 +01:00
Markus Opolka
43a2c383ff Upgrading to LTS Version 3.28.38+221115 2022-11-22 08:57:15 +01:00
Markus Opolka
19efe662d1 Upgrading to Version 5.4.10+221107 2022-11-15 13:20:29 +01:00
Markus Opolka
51f45a8513 Upgrading to LTS Version 3.28.37+221108 2022-11-15 13:19:17 +01:00
Markus Opolka
f0b55dacf9 Update README
- Added known issues section
2022-11-15 09:44:38 +01:00
Markus Opolka
d9eb6aff10 Upgrading to Version 5.4.9+221101 2022-11-08 13:20:42 +01:00
Markus Opolka
d979eb5aa4 Upgrading to LTS Version 3.28.36+221102 2022-11-08 13:20:03 +01:00
Markus Opolka
55d9b48441 Upgrading to Version 5.4.8+221024 2022-11-02 08:31:52 +01:00
Markus Opolka
c0167b9a23 Upgrading to LTS Version 3.28.35+221025 2022-11-02 08:31:28 +01:00
Markus Opolka
6cf8fba820 Upgrading to Version 5.4.7+221019 2022-10-25 08:52:08 +02:00
Markus Opolka
e6b006edfd Upgrading to LTS Version 3.28.34+221021 2022-10-25 08:51:35 +02:00
Markus Opolka
32be5d4370 Upgrading to Version 5.4.6+221018 2022-10-19 11:35:08 +02:00
Markus Opolka
e8818f58e2 Upgrading to LTS Version 3.28.33+221020 2022-10-19 11:34:16 +02:00
Markus Opolka
c7e92149ac Upgrading to Version 5.4.5+221010 2022-10-18 11:30:06 +02:00
Markus Opolka
e8d4216266 Upgrading to Version 5.4.4+221004 2022-10-10 14:44:57 +02:00
Markus Opolka
7597951edf Upgrading to LTS Version 3.28.31+221005 2022-10-10 14:43:59 +02:00
Markus Opolka
d4d89859c1 Upgrading to Version 5.4.3+220926 2022-10-04 17:15:21 +02:00
Markus Opolka
eef6c84c91 Upgrading to LTS Version 3.28.30+220927 2022-10-04 17:14:47 +02:00
Markus Opolka
3117108a47 Upgrading to Version 5.4.2+220921 2022-09-26 14:14:10 +02:00
Markus Opolka
ce612a0bb9 Upgrading to LTS Version 3.28.29+220920 2022-09-26 14:13:45 +02:00
Markus Opolka
f094489674 Upgrading to Version 5.4.1+220919 2022-09-21 08:39:27 +02:00
Markus Opolka
12a8ba2660 Merge pull request #128 from edgarrmondragon/upgrade-5.4.0+220913
Upgrading to Version 5.4.0+220913
2022-09-19 21:17:53 +02:00
Markus Opolka
f3e7c1451a Merge pull request #129 from edgarrmondragon/upgrade-3.28.28+220912
Upgrading to LTS Version 3.28.28+220912
2022-09-19 21:11:30 +02:00
Edgar Ramírez Mondragón
66b2708e41 Upgrading to LTS Version 3.28.28+220912 2022-09-19 12:53:22 -05:00
Edgar Ramírez Mondragón
5ba0746db1 Upgrading to Version 5.4.0+220913 2022-09-19 12:52:19 -05:00
Markus Opolka
38ba19ffec Update Makefile to that Container runtime is variable 2022-09-14 15:26:08 +02:00
Markus Opolka
8d54793bf6 Upgrading to Version 5.3.32+220817 2022-09-13 12:44:01 +02:00
Markus Opolka
f8122f286c Upgrading to LTS Version 3.28.27+220905 2022-09-12 16:25:02 +02:00
Markus Opolka
93c5bff4d4 Upgrading to LTS Version 3.28.26+220829 2022-09-05 12:56:51 +02:00
Markus Opolka
b76bc10938 Upgrading to LTS Version 3.28.25+220822 2022-08-30 09:27:44 +02:00
Markus Opolka
db81ee1d42 Update CONTRIBUTING.md 2022-08-25 10:01:09 +02:00
Markus Opolka
dbb996270d Merge pull request #126 from fkr/master
escape '|' so that markdown is rendered properly.
2022-08-25 09:52:32 +02:00
Felix Kronlage-Dammers
b1a85992d7 escape '|' so that markdown is rendered properly. 2022-08-25 09:43:42 +02:00
Markus Opolka
c3f547aa3c Merge pull request #125 from martialblog/fix/images-fqdn
Change Container Image Names to FQDN
2022-08-24 09:26:45 +02:00
Markus Opolka
24ed34bc01 Change Base Container Image Names to FQDN in Dockerfiles 2022-08-24 09:21:22 +02:00
Markus Opolka
77ba4fe5e7 Change Container Image Names to FQDN in docker-compose examples 2022-08-24 09:21:18 +02:00
Markus Opolka
4077b9d0c8 Upgrading to LTS Version 3.28.24+220816 2022-08-23 08:44:52 +02:00
Markus Opolka
0ce040715c Update Makefile
- Use variable for Container Runtime, defaults to podman
2022-08-23 08:43:18 +02:00
Markus Opolka
d4072def38 Upgrading to Version 5.3.31+220815 2022-08-17 16:51:31 +02:00
Markus Opolka
8cd721ab4b Upgrading to Version 5.3.30+220808 2022-08-15 15:43:23 +02:00
Markus Opolka
76ccb812a4 Upgrading to LTS Version 3.28.23+220809 2022-08-15 15:42:20 +02:00
Markus Opolka
289e07597c Upgrading to Version 5.3.29+220801 2022-08-08 14:08:15 +02:00
Markus Opolka
10b4f482ff Upgrading to LTS Version 3.28.22+220802 2022-08-08 14:07:36 +02:00
Markus Opolka
89829181a7 Upgrading to Version 5.3.28+220727 2022-08-01 11:26:41 +02:00
Markus Opolka
0fa7cc0c28 Upgrading to LTS Version 3.28.21+220726 2022-08-01 11:25:11 +02:00
Markus Opolka
da15d218b4 Upgrading to Version 5.3.27+220725 2022-07-27 19:40:10 +02:00
Markus Opolka
fe85d3caed Upgrading to Version 5.3.26+220720 2022-07-25 13:09:14 +02:00
Markus Opolka
3ae6ad9a4d Upgrading to LTS Version 3.28.20+220719 2022-07-25 13:08:33 +02:00
Markus Opolka
84bef42be8 Upgrading to Version 5.3.25+220718 2022-07-18 13:11:41 +02:00
Markus Opolka
d586d00f65 Upgrading to LTS Version 3.28.19+220712 2022-07-18 13:11:07 +02:00
Markus Opolka
1f1dc5988c Upgrading to Version 5.3.23+220705 2022-07-13 17:22:50 +02:00
Markus Opolka
d1589be66e Upgrading to LTS Version 3.28.18+220706 2022-07-13 17:21:25 +02:00
Markus Opolka
d70f6e96a2 Upgrading to Version 5.3.22+220628 2022-07-06 14:55:39 +02:00
Markus Opolka
ab4999ce35 Upgrading to LTS Version 3.28.17+220627 2022-07-06 14:54:57 +02:00
Markus Opolka
316121af13 Upgrading to Version 5.3.21+220620 2022-06-29 11:15:07 +02:00
Markus Opolka
34416fb250 Upgrading to LTS Version 3.28.16+220621 2022-06-29 11:14:26 +02:00
Markus Opolka
e640684875 Upgrading to Version 5.3.20+220615 2022-06-20 12:37:40 +02:00
Markus Opolka
e8595fbbed Upgrading to LTS Version 3.28.15+220616 2022-06-20 12:36:02 +02:00
Markus Opolka
a107e3a14f Upgrading to Version 5.3.19+220607 2022-06-17 09:06:09 +02:00
Markus Opolka
69a0febd53 Upgrading to LTS Version 3.28.14+220608 2022-06-17 09:05:00 +02:00
Edgar R. M
2a8c53273e feat: Move ARG instructions right before where they are used (#124) 2022-06-17 09:03:45 +02:00
Markus Opolka
882cc50e81 Upgrading to Version 5.3.18+220530 2022-06-07 17:42:21 +02:00
Markus Opolka
1d3081acd7 Upgrading to LTS Version 3.28.13+220531 2022-06-07 17:41:36 +02:00
Markus Opolka
0d13763a47 Remove LimeSurvey 4.0 Dockerfiles
- No longer supported, replaced by 5.0
2022-06-07 17:40:38 +02:00
Edgar R. M
7ee31a96ec Add a 'archive_url' build argument (#123)
* Use archive_url ARG to modify download URL
* Make ARG quoting consistent
2022-06-03 11:10:01 +02:00
Markus Opolka
f5da02dd55 Upgrading to Version 5.3.17+220525 2022-05-31 07:42:44 +02:00
Markus Opolka
952a15d298 Upgrading to LTS Version 3.28.12+220524 2022-05-31 07:41:52 +02:00
Markus Opolka
ce31f52f54 Upgrading to Version 5.3.16+220523 2022-05-26 09:05:21 +02:00
Markus Opolka
4d22afc2f3 Upgrading to Version 5.3.15+220519 2022-05-23 16:06:22 +02:00
Markus Opolka
2dff0b1c02 Upgrading to LTS Version 3.28.11+220517 2022-05-23 16:05:58 +02:00
Edgar Ramírez
d817d2c56d Upgrade to 5.3.13+220509 (#122) 2022-05-18 09:49:40 +02:00
Markus Opolka
26291e176b Upgrading to LTS Version 3.28.10+220510 2022-05-18 09:48:59 +02:00
Edgar Ramírez
b00c7b146a Upgrade to 5.3.12+220502 (#120)
* Upgrade to 5.3.12+220502
2022-05-10 07:34:50 +02:00
Markus Opolka
a45bcd926d Upgrading to LTS Version 3.28.9+220503 2022-05-10 07:33:33 +02:00
Markus Opolka
c1c16c5395 Upgrading to Version 5.3.11+220425 2022-05-03 07:58:48 +02:00
Markus Opolka
afbe9787e0 Upgrading to LTS Version 3.28.8+220426 2022-05-03 07:54:26 +02:00
Markus Opolka
9af1d036cc Fix sha checksum in 5.0 Dockerfiles 2022-04-27 09:52:34 +02:00
Markus Opolka
be5896458a Upgrading to Version 5.3.10+220419 2022-04-27 08:02:32 +02:00
Markus Opolka
c30fa9344c Upgrading to LTS Version 3.28.7+220420 2022-04-27 08:01:51 +02:00
Markus Opolka
7f69fae06e Upgrading to Version 5.3.9+220411 2022-04-20 07:59:52 +02:00
Markus Opolka
7d7f373632 Upgrading to LTS Version 3.28.6+220412 2022-04-20 07:59:08 +02:00
Edgar Ramírez
148231aab6 Upgrade to 5.3.8+220404 (#119) 2022-04-12 07:38:12 +02:00
Markus Opolka
a201933bf2 Upgrading to LTS Version 3.28.5+220405 2022-04-12 07:30:09 +02:00
Markus Opolka
350b07dbe9 Upgrading to Version 5.3.7+220328 2022-04-05 07:50:40 +02:00
Markus Opolka
f9f651b2be Upgrading to LTS Version 3.28.4+220329 2022-04-05 07:50:01 +02:00
Markus Opolka
8c14595423 Upgrading to Version 5.3.6+220321 2022-03-29 07:46:26 +02:00
Markus Opolka
9014e7ac6f Upgrading to LTS Version 3.28.3+220315 2022-03-29 07:45:44 +02:00
Markus Opolka
ce253c48b8 Upgrading to Version 5.3.5+220314 2022-03-25 08:00:44 +01:00
Markus Opolka
392e28405a Upgrading to Version 5.3.4+220309 2022-03-14 17:49:24 +01:00
Markus Opolka
a6c71d5d10 Upgrading to LTS Version 3.28.2+220308 2022-03-14 17:48:44 +01:00
Markus Opolka
d6093e43d2 Upgrading to Version 5.3.3+220307 2022-03-09 19:28:46 +01:00
Markus Opolka
2aa9153abc Upgrading to LTS Version 3.28.1+220229 2022-03-08 07:47:47 +01:00
Markus Opolka
027a8a4589 Upgrading to Version 5.3.1+220301 2022-03-03 07:56:43 +01:00
Markus Opolka
6dd4088f7d Upgrading to Version 5.3.1+220228 2022-03-02 08:11:19 +01:00
Markus Opolka
2c2106522b Upgrading to Version 5.3.0+220228 2022-03-01 12:51:28 +01:00
Markus Opolka
b6ad489977 Upgrading to LTS Version 3.28.1+220215 2022-03-01 12:50:46 +01:00
Markus Opolka
cb2286e6be Upgrading to Version 5.2.13+220207 2022-02-17 07:56:44 +01:00
Markus Opolka
241f855f0e Upgrading to LTS Version 3.27.35+220208 2022-02-17 07:55:57 +01:00
Markus Opolka
7ba3ad6618 Upgrading to Version 5.2.12+220131 2022-02-08 07:59:42 +01:00
Markus Opolka
e486bf1ec6 Upgrading to LTS Version 3.27.34+220132 2022-02-08 07:58:40 +01:00
Markus Opolka
dfb5b39211 Upgrading to Version 5.2.11+220124 2022-02-01 08:11:21 +01:00
Markus Opolka
16175a30ac Upgrading to LTS Version 3.27.33+220125 2022-02-01 08:09:52 +01:00
Markus Opolka
69178ec686 Upgrading to Version 5.2.10+220118 2022-01-24 14:06:58 +01:00
Markus Opolka
822a936b36 Upgrading to LTS Version 3.27.32+220119 2022-01-24 14:06:16 +01:00
Markus Opolka
99f898aedc Upgrading to Version 5.2.9+220110 2022-01-18 16:52:59 +01:00
Markus Opolka
b3bfb6f2a3 Upgrading to LTS Version 3.27.31+220104 2022-01-18 16:49:41 +01:00
Markus Opolka
f2c65ebc44 Enable :latest Tag for Apache Image (#115) 2022-01-18 14:54:17 +01:00
Jack Henschel
80a9ca9173 Merge pull request #113 from martialblog/jacksgt-patch-1
Correct path to data volume of Postgres deployment
2022-01-11 11:35:45 +01:00
Jack Henschel
cb13a177b6 Correct path to data volume of Postgres deployment
Fixes https://github.com/martialblog/docker-limesurvey/issues/112
2022-01-10 08:31:20 +01:00
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
Markus Opolka
452f6291c0 Upgrading to LTS Version 3.27.10+210803 2021-08-12 07:57:55 +02:00
Markus Opolka
0a8860911c Upgrading to Version 5.0.12+210729 2021-08-05 08:13:10 +02:00
Markus Opolka
1b174dafb7 Upgrading to LTS Version 3.27.9+210726 2021-08-05 08:12:14 +02:00
Markus Opolka
2c011a2de6 Upgrading to Version 5.0.11+210727 2021-07-30 07:59:57 +02:00
Markus Opolka
e63cd1ab2b Upgrading to Version 5.0.10+210723 2021-07-28 08:17:22 +02:00
Markus Opolka
2a7eebdc66 Upgrading to LTS Version 3.27.8+210721 2021-07-28 08:14:07 +02:00
Markus Opolka
52483b4656 Update Trivy config to only scan type 'os' (#85)
- since we are not in charge of the app
2021-07-27 10:20:42 +02:00
Markus Opolka
342d706142 Update README (#84) 2021-07-27 09:41:07 +02:00
Markus Opolka
da676f1998 Upgrading to Version 5.0.9+210722 2021-07-25 17:15:48 +02:00
Markus Opolka
6ecc2e30dd Upgrading to LTS Version 3.27.7+210713 2021-07-25 17:14:36 +02:00
Markus Opolka
e638fc36a0 Add Variable to Ignore User-Agent in Logs (#80)
* Set trivy scan to exit 0, until we cleanup those false positives
* Add variable to ignore logs for certain User-Agents. This allows us to have a clearer log when using regular health checks
2021-07-25 16:55:56 +02:00
Markus Opolka
bd836fd91f Merge pull request #82 from martialblog/update-contrib
Update CONTRIBUTING.md
2021-07-23 20:06:40 +02:00
Markus Opolka
d95fdafbd4 Update CONTRIBUTING.md 2021-07-23 20:01:16 +02:00
Markus Opolka
962f607a11 Merge pull request #77 from JensHeinrich/feature/shellCheck
Add suggestions from shellcheck
2021-07-23 16:16:20 +02:00
Jens Heinrich
7146b4d09e Add suggestions from shellcheck 2021-07-23 08:45:23 +02:00
Markus Opolka
dce4f4e100 Merge pull request #76 from martialblog/sessions
Add variable for setting table session
2021-07-22 16:53:06 +02:00
Markus Opolka
05ec82a41c Add variable for setting table session
- this allows LimeSurvey to scale horizontally
2021-07-22 16:32:08 +02:00
Markus Opolka
e3223f7a87 Upgrading to Version 5.0.7+210628 2021-07-15 18:45:37 +02:00
Markus Opolka
f29d671591 Upgrading to LTS Version 3.27.6+210629 2021-07-15 18:42:36 +02:00
Markus Opolka
745553a417 Upgrading to Version 5.0.6+210625 2021-06-29 08:01:59 +02:00
Markus Opolka
f313ba2581 Upgrading to LTS Version 3.27.5+210624 2021-06-29 08:00:55 +02:00
Markus Opolka
e7a859bc1a Upgrading to Version 5.0.5+210621 2021-06-25 08:18:56 +02:00
Markus Opolka
fdce9e0f97 Upgrading to LTS Version 3.27.4+210622 2021-06-25 08:17:47 +02:00
Markus Opolka
d0259b255b Add Trivy Scan and Structure Test (#71)
* Add Trivy Scan and Structure Tests
* Update README, fancy new Badges!
* Update Makefile, full-qualified Image names
2021-06-23 08:40:51 +02:00
Markus Opolka
0770ca63c7 Remove gchr.io comments 2021-06-22 10:32:33 +02:00
Markus Opolka
1e3009bf6c Update update.sh for new Tag Schema 2021-06-22 10:26:07 +02:00
Markus Opolka
bdcab55309 Upgrading to Version 5.0.4+210614 2021-06-22 07:53:53 +02:00
Markus Opolka
2755985321 Upgrading to LTS Version 3.27.3+210615 2021-06-22 07:46:01 +02:00
Jack Henschel
cb5b062980 Minor workflow fixes (#70)
* YAML indentation
* Correct image labels
2021-06-21 19:38:58 +02:00
Jack Henschel
3890f9f73a Build and push images with Github Actions to DockerHub (#68)
* Build and push images with Github Actions to DockerHub
* Remove Travis CI configuration

References:
* https://docs.github.com/en/actions/guides/publishing-docker-images
* https://github.com/docker/build-push-action/blob/master/docs/advanced/tags-labels.md
* https://github.com/docker/metadata-action

Note: docker / buildx does not support '+' in the image tag name.
> invalid tag "martialblog/limesurvey:0.0.0+test5-apache": invalid
reference format

Use underscores instead, like the images already have on Dockerhub.

Co-authored-by: Markus Opolka <markus.opolka@iis.fraunhofer.de>
2021-06-21 13:27:58 +02:00
Markus Opolka
c181f3a832 Upgrading to Version 5.0.3+210609 2021-06-15 08:13:04 +02:00
Markus Opolka
eda09e735e Upgrading to LTS Version 3.27.2+210608 2021-06-15 08:12:10 +02:00
Markus Opolka
80a5f95fab Upgrading to Version 5.0.2+210607 2021-06-09 07:44:57 +02:00
Nimrod Zimerman
65c1902247 Fix Apache LISTEN_PORT "sed" command to look for whole "Listen" command (#64)
Otherwise, if the replaced port number contains "80" (for example, "8080",
as is now the default), it is replaced over and over on each activation
2021-06-08 09:56:17 +02:00
Markus Opolka
387fcf11f4 Upgrading to Version 5.0.1+210532 2021-06-07 16:46:51 +02:00
Markus Opolka
3ffdb0d003 Upgrading to LTS Version 3.27.1+210531 2021-06-07 16:46:06 +02:00
Markus Opolka
4e99ca384c Upgrading to LTS Version 3.27.0+210525 2021-06-07 08:32:03 +02:00
Markus Opolka
30eef8abc1 Upgrade to LimeSurvey 5.0 (#62)
* Add Dockerfiles for LimeSurvey 5.0

 - This changes the default user to www-data in the Apache2 Images
 - Removed extra download layer
 - Add LS 5.0 Update Guide
 - Update base images to PHP 8.0
 - Add Variable for showScriptName
2021-06-07 07:59:53 +02:00
Markus Opolka
958ed57011 Upgrading to Version 4.6.3+210518 2021-05-25 18:52:23 +02:00
Markus Opolka
628cb942af Upgrading to LTS Version 3.26.5+210519 2021-05-25 18:51:31 +02:00
Markus Opolka
3165dffe31 Upgrading to Version 4.6.2+210512 2021-05-17 20:25:56 +02:00
Markus Opolka
bd28fb2796 Upgrading to LTS Version 3.26.3+210511 2021-05-17 20:25:11 +02:00
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
Markus Opolka
d7751f41d4 Upgrading to LTS Version 3.25.18+210316 2021-03-22 19:44:47 +01:00
Markus Opolka
47be732839 Merge pull request #52 from martialblog/fix-gd
Fix gd installation and add tidy/sodium lib
2021-03-22 19:43:58 +01:00
Markus Opolka
7da025f19a Fix gd installation and add tidy/sodium lib 2021-03-21 11:15:29 +01:00
Markus Opolka
cefd0a5c75 Upgrading to Version 4.4.12+210308 2021-03-16 06:29:22 +01:00
Markus Opolka
086903f0b4 Upgrading to LTS Version 3.25.17+210309 2021-03-16 06:28:36 +01:00
Markus Opolka
a619f5b8b7 Upgrading to Version 4.4.11+210301 2021-03-08 18:05:57 +01:00
Markus Opolka
f0c42a8bc2 Upgrading to LTS Version 3.25.16+210302 2021-03-08 18:05:00 +01:00
Markus Opolka
a6668c1fd2 Upgrading to Version 4.4.10+210222 2021-03-01 13:17:50 +01:00
Markus Opolka
ddcd2c868a Upgrading to LTS Version 3.25.15+210223 2021-03-01 13:17:08 +01:00
Markus Opolka
e3c0c3a9d0 Upgrading to Version 4.4.9+210219 2021-02-23 07:26:49 +01:00
Markus Opolka
eb1354a42a Upgrading to LTS Version 3.25.14+210218 2021-02-23 07:25:57 +01:00
Markus Opolka
448fb092a6 Upgrading to Version 4.4.8+210217 2021-02-17 16:16:10 +01:00
Markus Opolka
97c806aada Upgrading to LTS Version 3.25.12+210211 2021-02-17 16:15:11 +01:00
Markus Opolka
263b64e9f9 Upgrading to Version 4.4.6+210214 2021-02-12 17:33:54 +01:00
Markus Opolka
bab97c1eab Upgrading to Version 4.4.5+210213 2021-02-12 05:55:39 +01:00
Markus Opolka
064611ced5 Upgrading to Version 4.4.3+210209 2021-02-10 09:22:48 +01:00
Markus Opolka
c7ea723349 Upgrading to LTS Version 3.25.11+210210 2021-02-10 09:22:00 +01:00
Markus Opolka
81ec0452b9 Upgrading to Version 4.4.2+210208 2021-02-09 09:40:45 +01:00
Markus Opolka
eecb83fc99 Upgrading to LTS Version 3.25.10+210128 2021-02-09 09:38:44 +01:00
Markus Opolka
c2ad0c38cc Upgrading to Version 4.4.0+210129 2021-02-02 07:52:34 +01:00
Markus Opolka
b2f25dac02 Upgrading to Version 4.3.34+210119 2021-01-29 07:22:49 +01:00
Markus Opolka
64ad7966fd Upgrading to LTS Version 3.25.9+210125 2021-01-29 07:21:54 +01:00
Markus Opolka
9833519c9f Upgrading to LTS Version 3.25.8+210118 2021-01-26 07:51:00 +01:00
Markus Opolka
7438aecf40 Upgrading to LTS Version 3.25.7+210113 2021-01-18 18:45:11 +01:00
Markus Opolka
80ebadd26d Upgrading to Version 4.3.33+201228 2021-01-12 09:11:47 +01:00
Markus Opolka
d99c00d482 Upgrading to LTS Version 3.25.6+201229 2021-01-12 09:10:50 +01:00
Markus Opolka
a3d86a1779 Upgrading to LTS Version 3.25.5+201222 2020-12-29 18:19:22 +01:00
Markus Opolka
f008494a2d Upgrading to Version 4.3.32+201221 2020-12-23 05:47:42 +01:00
Markus Opolka
a44db5df62 Upgrading to Version 4.3.31+201214 2020-12-21 15:10:48 +01:00
Markus Opolka
03a0d9a16e Upgrading to LTS Version 3.25.4+201215 2020-12-21 15:09:51 +01:00
Markus Opolka
15f46a40b9 Upgrading to Version 4.3.30+201207 2020-12-14 17:47:06 +01:00
Markus Opolka
f7f8bbcbae Upgrading to LTS Version 3.25.3+201208 2020-12-14 17:46:21 +01:00
Markus Opolka
0f7d4ef58f Upgrading to Version 4.3.29+201130 2020-12-07 18:29:05 +01:00
Markus Opolka
54e0eea7ff Upgrading to LTS Version 3.25.2+201131 2020-12-07 18:27:44 +01:00
Markus Opolka
fb10ebaa8f Update README 2020-12-03 14:52:16 +01:00
Markus Opolka
2750dbecb0 Upgrading to Version 4.3.28+201123 2020-12-01 07:24:30 +01:00
Markus Opolka
3e4bdaf2ef Upgrading to LTS Version 3.25.1+201124 2020-12-01 07:23:19 +01:00
Markus Opolka
909d240306 Merge pull request #46 from MarkErik/remove-unused-security-LS3
Remove unused references to encryption for LS3 entrypoints
2020-12-01 07:21:56 +01:00
Mark
7f8ae6921a Remove unused references to encryption for LS3 entrypoints
Limesurvey 3.0 won't support the encyption introduced in LS4, so the variables and the check for security.php isn't necessary in the entrypoint.sh files.
2020-11-29 19:58:26 -05:00
Markus Opolka
17b72df441 Upgrading to Version 4.3.27+201116 2020-11-24 08:08:36 +01:00
Markus Opolka
0c90ce2487 Upgrading to LTS Version 3.25.0+201117 2020-11-24 08:07:40 +01:00
Markus Opolka
4b12d8a53c Upgrading to Version 4.3.26+201110 2020-11-16 10:40:22 +01:00
Markus Opolka
c90840d414 Upgrading to LTS Version 3.24.6+201109 2020-11-16 10:39:33 +01:00
Markus Opolka
89f15d94ba Upgrading to Version 4.3.25+201105 2020-11-10 07:37:10 +01:00
Markus Opolka
ab6da243fe Upgrading to LTS Version 3.24.5+201104 2020-11-10 07:35:55 +01:00
Markus Opolka
ce54275ddd Upgrading to Version 4.3.24+201102 2020-11-05 07:27:51 +01:00
Markus Opolka
b0b38440e4 Upgrading to LTS Version 3.24.4+201103 2020-11-05 07:26:37 +01:00
Markus Opolka
56b9a7e686 Merge pull request #44 from martialblog/php-upgrade
Update Base Images to PHP 7.4
2020-11-03 11:29:55 +01:00
Markus Opolka
41a275a59d Update Base Images to PHP 7.4 2020-11-03 10:43:39 +01:00
Markus Opolka
876145e009 Upgrading to Version 4.3.23+201026 2020-11-03 07:55:44 +01:00
Markus Opolka
4a9a8a9bc3 Upgrading to LTS Version 3.24.3+201027 2020-11-03 07:54:18 +01:00
Markus Opolka
a189f5eceb Merge pull request #42 from jwhb/compose-services
Simplify database host values with compose
2020-11-02 08:29:42 +01:00
jwhb
0c7e8947ca Simplify database host values with compose 2020-10-31 16:07:59 +01:00
Markus Opolka
7912d765ad Upgrading to Version 4.3.22+201019 2020-10-26 14:54:48 +01:00
Markus Opolka
245cd092ed Upgrading to LTS Version 3.24.2+201020 2020-10-26 14:53:07 +01:00
Markus Opolka
c897f9efbe Upgrading to Version 4.3.21+201015 2020-10-19 10:40:34 +02:00
Markus Opolka
ffe21eb987 Upgrading to LTS Version 3.24.1+201014 2020-10-19 10:39:39 +02:00
Markus Opolka
e4c997f148 Extend upgrade script
- now shows commit message template
2020-10-19 10:39:18 +02:00
Markus Opolka
ebfbaeb119 Upgrading to Version 4.3.20+201012 2020-10-14 18:17:53 +02:00
Markus Opolka
7df88e2980 Upgrading to LTS Version 3.24.0+201013 2020-10-14 18:17:06 +02:00
Markus Opolka
8737c5c99c Minor fix in Makefix 2020-10-14 16:11:46 +02:00
Markus Opolka
02f9309f25 Update Makefile 2020-10-14 15:50:28 +02:00
Markus Opolka
ea3a644bfe Update README
- Added details on Tags and Dockerfiles
 - Some markdown improvements
 - Minor spelling fixes
2020-10-14 15:18:19 +02:00
Markus Opolka
f0000f7448 Upgrading to Version 4.3.19+201005 2020-10-13 07:49:59 +02:00
Markus Opolka
6d71e4ecc2 Upgrading to LTS Version 3.23.7+201006 2020-10-13 07:48:55 +02:00
Markus Opolka
2d8e54191d Merge pull request #40 from martialblog/baseurl-param
Add BASE_URL Parameter to work with a Reverse Proxy
2020-10-08 13:03:45 +02:00
Markus Opolka
79047b6ef9 Add BASE_URL Parameter to work with a Reverse Proxy 2020-10-08 12:19:21 +02:00
Markus Opolka
1c3854fe28 Upgrading to Version 4.3.18+200928 2020-10-05 10:28:32 +02:00
Markus Opolka
5d9cad19a6 Upgrading to LTS Version 3.23.6+200929 2020-10-05 10:27:42 +02:00
Markus Opolka
e55d0b89fa Upgrading to Version 4.3.17+200921 2020-09-28 15:48:41 +02:00
Markus Opolka
94ea6bda5b Upgrading to LTS Version 3.23.5+200923 2020-09-28 15:47:50 +02:00
Markus Opolka
5bf70a5640 Upgrading to Version 3.23.4+200922 2020-09-23 07:21:04 +02:00
Markus Opolka
9fc0ccc03c Upgrading to Version 4.3.16+200915 2020-09-22 07:52:10 +02:00
Markus Opolka
4ab8956a4c Upgrading to LTS Version 3.23.3+200909 2020-09-22 07:51:16 +02:00
Markus Opolka
7a597d1cfe Upgrading to Version 4.3.15+200907 2020-09-15 20:46:57 +02:00
Markus Opolka
3a7c6d1328 Fix typo in README 2020-09-09 16:18:51 +02:00
Markus Opolka
c794a8fb3a Upgrading to LTS Version 3.23.2+200908 2020-09-08 09:42:13 +02:00
Markus Opolka
4430106edc Upgrading to Version 4.3.14+200826 2020-09-08 07:28:22 +02:00
Markus Opolka
9c9508ab1f Upgrading to LTS Version 3.23.1+200825 2020-09-08 07:27:27 +02:00
Markus Opolka
2f710a23c1 Update CONTRIBUTING.md 2020-08-28 20:57:02 +02:00
Markus Opolka
0b4d0affc1 Upgrading to Version 4.3.13+200824 2020-08-26 19:35:28 +02:00
Markus Opolka
eab3428bca Upgrading to Version 4.3.12+200820 2020-08-25 07:09:05 +02:00
Markus Opolka
411ac77814 Upgrading to LTS Version 3.23.0+200813 2020-08-25 07:07:52 +02:00
Markus Opolka
453160b3f2 Upgrading to Version 4.3.11+200817 2020-08-20 18:42:14 +02:00
Markus Opolka
62e27bdfeb Upgrading to Version 4.3.10+200812 2020-08-17 20:39:43 +02:00
Markus Opolka
20231d4131 Upgrading to Version 4.3.9+200806 2020-08-13 08:08:20 +02:00
Markus Opolka
5bf6128301 Upgrading to LTS Version 3.22.210+200804 2020-08-13 08:07:27 +02:00
Markus Opolka
f027de8442 Upgrading to Version 4.3.8+200803 2020-08-07 07:20:56 +02:00
Markus Opolka
088850e4f3 Upgrading to Version 4.3.7+200730 2020-08-03 18:41:43 +02:00
Markus Opolka
0996c4d310 Upgrading to LTS Version 3.22.29+200731 2020-08-03 18:40:45 +02:00
Markus Opolka
4704706cdd Upgrading to Version 4.3.6+200727 2020-07-31 07:51:58 +02:00
Markus Opolka
e81dd14138 Upgrading to LTS Version 3.22.28+200728 2020-07-31 07:50:32 +02:00
Markus Opolka
bb22b75637 Upgrading to Version 4.3.5+200721 2020-07-27 12:20:15 +02:00
Markus Opolka
7c5e1c8902 Upgrading to LTS Version 3.22.27+200720 2020-07-27 12:19:12 +02:00
Markus Opolka
03d0887bad Upgrading to Version 4.3.4+200713 2020-07-20 20:03:46 +02:00
Markus Opolka
f937ded8ce Upgrading to LTS Version 3.22.26+200714 2020-07-20 20:02:54 +02:00
Markus Opolka
05362c3532 Merge pull request #36 from muniter/patch-2
Update README.md
2020-07-20 07:18:50 +02:00
Javier Lopez
dba3c11a23 Update README.md
Hey! Thanks a lot for this repo. I think I'd be nice to add the link to the repo in the README so when people read that part in the Docker Hub, can just jump here straight away.
2020-07-19 19:41:30 -05:00
Markus Opolka
5366866a7b Merge pull request #34 from martialblog/refactor-entrypoint
Refactor entrypoint
2020-07-17 14:34:36 +02:00
Markus Opolka
79a4c3cbee Merge pull request #35 from martialblog/refactor-download
Change download of Limesurvey to curl
2020-07-16 19:08:26 +02:00
Markus Opolka
bf3e4b0378 Change download of Limesurvey to curl
- More secure than ADD
 - Makes better use of cache
2020-07-16 18:35:51 +02:00
Markus Opolka
e2998e2076 Update README 2020-07-16 18:35:04 +02:00
Markus Opolka
8322b5966f Refactor Entrypoint
- Simpler creation of config.php
 - Debug can now be set
 - Encryption Keys are now supported
2020-07-16 17:09:21 +02:00
Markus Opolka
a95a625725 Add exif installation 2020-07-14 09:42:49 +02:00
Markus Opolka
dd90a16086 Upgrading to Version 4.3.3+200707 2020-07-13 19:57:12 +02:00
Markus Opolka
d1699d3d85 Upgrading to LTS Version 3.22.25+200706 2020-07-13 19:56:11 +02:00
Markus Opolka
1707b30df2 Upgrading to Version 4.3.2+200629 2020-07-06 16:07:32 +02:00
Markus Opolka
3a55f6bfaf Upgrading to LTS Version 3.22.24+200630 2020-07-06 16:06:44 +02:00
Markus Opolka
da9fb16aab Upgrading to Version 4.3.1+200623 2020-06-29 21:16:51 +02:00
Markus Opolka
4af9e318fb Upgrading to LTS Version 3.22.23+200626 2020-06-29 21:15:51 +02:00
Markus Opolka
bcb66c5461 Upgrading to LTS Version 3.22.22+200625 2020-06-26 17:51:49 +02:00
Markus Opolka
a005f313a6 Upgrading to LTS Version 3.22.21+200622 2020-06-26 06:13:58 +02:00
Markus Opolka
0dda936f54 Upgrading to Version 4.3.0+200616 2020-06-22 18:37:34 +02:00
Markus Opolka
938e1540e7 Upgrading to LTS Version 3.22.20+200617 2020-06-22 18:36:32 +02:00
Markus Opolka
17f24f33b6 Upgrading to Version 4.2.8+200608 2020-06-16 12:56:33 +02:00
Markus Opolka
17e7553394 Upgrading to LTS Version 3.22.19+200605 2020-06-16 12:54:51 +02:00
Markus Opolka
ed7749da68 Upgrading to Version 4.2.7+200604 2020-06-08 13:46:18 +02:00
Markus Opolka
d02ccb7531 Upgrading to LTS Version 3.22.18+200603 2020-06-05 18:36:27 +02:00
Markus Opolka
50e4579f38 Upgrading to Version 4.2.6+200602 2020-06-05 07:39:18 +02:00
Markus Opolka
4821f97cdb Upgrading to Version 4.2.5+200526 2020-06-03 06:36:20 +02:00
Markus Opolka
430f189ce3 Upgrading to LTS Version 3.22.17+200525 2020-06-03 06:35:01 +02:00
Markus Opolka
b8d08e8fb7 Upgrading to Version 4.2.4+200520 2020-05-26 13:02:28 +02:00
Markus Opolka
58682a1ea2 Upgrading to LTS Version 3.22.16+200519 2020-05-25 13:27:14 +02:00
Markus Opolka
aff7605759 Upgrading to Version 4.2.3+200511 2020-05-19 21:38:58 +02:00
Markus Opolka
7dcf4d2b0f Upgrading to LTS Version 3.22.15+200505 2020-05-19 21:37:09 +02:00
Markus Opolka
b08f7275ef Upgrading to Version 4.2.2+200504 2020-05-11 17:27:58 +02:00
Markus Opolka
216b15a805 Merge pull request #31 from jsfan/master
Added configuration which adds Nginx with Letsencrypt certificate
2020-05-05 22:20:58 +02:00
Markus Opolka
ad281e9249 Upgrading to Version 4.2.1+200428 2020-05-04 17:06:33 +02:00
Markus Opolka
b1a3e04cbc Upgrading to LTS Version 3.22.14+200423 2020-05-04 17:05:29 +02:00
Markus Opolka
3639cc38e8 Fix nginx example config
- Fixes issue #30
2020-04-30 08:34:17 +02:00
Christian Lerrahn
334d781c10 Added description of FPM setup with https to README 2020-04-29 19:19:23 +10:00
Markus Opolka
0536ebf480 Upgrading to Version 4.2.0+200422 2020-04-28 15:04:16 +02:00
Christian Lerrahn
2c1390a146 Made host name consistent across config files 2020-04-28 18:49:07 +10:00
Christian Lerrahn
51f229262d Added configuration which adds Nginx with Letsencrypt certificate 2020-04-28 18:45:15 +10:00
Markus Opolka
4a44c06b6e Upgrading to LTS Version 3.22.13+200415 2020-04-24 10:23:19 +02:00
Markus Opolka
70bc819758 Upgrading to Version 4.1.18+200416 2020-04-22 21:15:16 +02:00
Markus Opolka
68c542a9e6 Upgrading to Version 4.1.17+200414 2020-04-17 09:17:18 +02:00
Markus Opolka
e2affcdcf9 Upgrading to Version 4.1.16+200407 2020-04-15 08:53:05 +02:00
Markus Opolka
b6ea4dd302 Upgrading to LTS Version 3.22.12+200406 2020-04-15 08:51:13 +02:00
Markus Opolka
0d98aab2b5 Upgrading to Version 4.1.15+200402 2020-04-08 08:02:14 +02:00
Markus Opolka
853d5d9528 Upgrading to LTS Version 3.22.11+200330 2020-04-06 18:04:37 +02:00
Markus Opolka
1b638a4f5f Upgrading to Version 4.1.14+200331 2020-04-03 08:21:41 +02:00
Markus Opolka
b697f94e29 Upgrading to Version 4.1.13+200325 2020-04-01 08:48:15 +02:00
Markus Opolka
fc67dc080b Upgrading to LTS Version 3.22.10+200323 2020-03-31 08:21:02 +02:00
Markus Opolka
14a816aa84 Upgrading to Version 4.1.12+200324 2020-03-26 09:09:47 +01:00
Markus Opolka
5b67ddda66 Upgrading to Version 4.1.11+200316 2020-03-24 18:39:03 +01:00
Markus Opolka
ff43a9e529 Upgrading to LTS Version 3.22.9+200317 2020-03-24 11:09:42 +01:00
Markus Opolka
5b88d7341e Update README 2020-03-24 11:09:28 +01:00
Markus Opolka
1c832d1af8 Update README.md 2020-03-23 10:55:34 +01:00
Markus Opolka
6e1a43a938 Update README 2020-03-23 10:54:41 +01:00
Markus Opolka
0ec273d058 Upgrading to Version 4.1.10+200311 2020-03-16 18:55:25 +01:00
Markus Opolka
983a55571b Upgrading to LTS Version 3.22.8+200309 2020-03-16 18:54:02 +01:00
Markus Opolka
b7c75d420d Upgrading to Version 4.1.9+200310 2020-03-10 08:14:32 +01:00
Markus Opolka
3d790f8d43 Upgrading to LTS Version 3.22.7+200225 2020-03-09 20:32:08 +01:00
Markus Opolka
8236234e60 Upgrading to Version 4.1.7+200224 2020-03-02 16:21:06 +01:00
Markus Opolka
01e8c78e5c Upgrading to Version 4.1.6+200220 2020-02-25 07:50:17 +01:00
Markus Opolka
85585bbfb6 Upgrading to LTS Version 3.22.6+200219 2020-02-25 07:49:05 +01:00
Markus Opolka
1d4ee64744 Upgrading to Version 4.1.5+200217 2020-02-21 07:45:12 +01:00
Markus Opolka
9748139ed4 Upgrading to LTS Version 3.22.5+200218 2020-02-21 07:44:15 +01:00
Markus Opolka
92addd6ec8 Upgrading to Version 4.1.4+200214 2020-02-18 08:42:16 +01:00
Markus Opolka
ea0ad22209 Upgrading to LTS Version 3.22.4+200212 2020-02-18 08:41:11 +01:00
Markus Opolka
5645da18bb Merge pull request #23 from lennard7001/master
New docker-compose.yml which doesn't depend on the git repo
2020-02-15 08:22:14 +01:00
Markus Opolka
efab6e6904 Upgrading to Version 4.1.3+200213 2020-02-14 08:24:51 +01:00
Markus Opolka
99e1f5a0c6 Upgrading to Version 4.1.2+200210 2020-02-12 08:03:33 +01:00
Markus Opolka
58ea2e58fb Upgrading to LTS Version 3.22.3+200211 2020-02-12 08:00:43 +01:00
lennard7001
647f274900 Create docker-compose.example.yml 2020-02-11 20:00:37 +01:00
Markus Opolka
f031145d17 Upgrading to Version 4.1.1+200203 2020-02-11 08:01:52 +01:00
Markus Opolka
2f60fe9155 Upgrading to LTS Version 3.22.2+200204 2020-02-11 07:59:46 +01:00
Markus Opolka
51a45cd565 Upgrading to Version 4.1.0+200128 2020-02-04 07:36:53 +01:00
Markus Opolka
f25581225c Upgrading to LTS Version 3.22.1+200129 2020-02-04 07:32:08 +01:00
Markus Opolka
cc58c840f0 Merge pull request #22 from martialblog/lts-refactor
Refactor to support LTS version
2020-01-31 18:08:08 +01:00
Markus Opolka
fb6bbf1992 Refactor to support LTS version 2020-01-31 18:02:27 +01:00
Markus Opolka
2392e89bde Upgrading to Version 3.22.0+200127 2020-01-29 10:59:59 +01:00
Markus Opolka
a75590b106 Upgrading to Version 3.21.6+200121 2020-01-27 16:26:30 +01:00
Markus Opolka
cbea63bc20 Upgrading to Version 4.0.0+200116 2020-01-20 21:23:07 +01:00
Markus Opolka
597cf8b0cf Upgrading to Version 3.21.4+200108 2020-01-16 09:50:13 +01:00
Markus Opolka
07c937f620 Upgrading to Version 3.21.3+191219 2020-01-09 08:00:36 +01:00
Markus Opolka
65996ad6b8 Upgrading to Version 3.21.2+191216 2019-12-20 08:01:23 +01:00
Markus Opolka
cd55481064 Upgrading to Version 3.21.1+191210 2019-12-17 07:19:43 +01:00
Markus Opolka
dabd4ecce7 Upgrading to Version 3.21.0+191203 2019-12-09 12:28:07 +01:00
Markus Opolka
3454ed078a Upgrading to Version 3.20.2+191119 2019-12-02 22:13:52 +01:00
Markus Opolka
c2ee09bb8c Upgrading to Version 3.20.1+191114 2019-11-19 17:40:49 +01:00
Markus Opolka
8f1903aa15 Upgrading to Version 3.20.0+191112 2019-11-15 11:04:05 +01:00
Markus Opolka
a829071849 Upgrading to Version 3.19.3+191023 2019-11-11 17:46:46 +01:00
Markus Opolka
a968c01029 Fix Checksum for tarball 2019-10-24 07:30:41 +02:00
Markus Opolka
325416c959 Upgrading to Version 3.19.2+191017 2019-10-23 19:06:11 +02:00
Markus Opolka
44fac58a28 Upgrading to Version 3.19.1+191009 2019-10-17 18:42:08 +02:00
Markus Opolka
1a63aa37a7 Upgrading to Version 3.19.0+191008 2019-10-13 13:26:13 +02:00
Markus Opolka
e4d7e3550f Upgrading to Version 3.17.17+190918 2019-09-23 18:24:27 +02:00
Markus Opolka
26623a1d2c Upgrading to Version 3.17.16+190906 2019-09-19 06:35:28 +02:00
Markus Opolka
5b37d301ad Upgrading to Version 3.17.15+190903 2019-09-07 08:00:31 +02:00
Markus Opolka
9e5b903b28 Upgrading to Version 3.17.14+190902 2019-09-03 13:43:29 +02:00
Markus Opolka
69194ef8a8 Upgrading to Version 3.17.13+190824 2019-09-03 08:19:57 +02:00
Markus Opolka
4a6fd295f3 Upgrading to Version 3.17.12+190823 2019-08-23 19:43:30 +02:00
Markus Opolka
e75090d0fd Upgrading to Version 3.17.10+190821 2019-08-23 19:40:21 +02:00
Markus Opolka
93514b0fb9 Upgrading to Version 3.17.9+190731 2019-08-22 09:40:20 +02:00
Markus Opolka
2d23179e3e Merge pull request #21 from martialblog/fix-image-lib
Fix gd library configuration and update example docker-compose files
2019-08-15 14:04:34 +02:00
Markus Opolka
051a22eb41 Change example volume path in docker-compose files
- The previous setting did override the default Limesurvey directories
  - Also added a hint to the README
2019-08-15 13:57:18 +02:00
Markus Opolka
2fdc20f862 Add gd config and dependencies 2019-08-14 18:33:44 +02:00
Markus Opolka
b35d566cda Upgrading to Version 3.17.8+190722 2019-07-31 15:21:13 +02:00
Markus Opolka
2ef998b0d7 Upgrading to Version 3.17.7+190627 2019-07-22 21:30:14 +02:00
Markus Opolka
02e2c9dc3a Update README 2019-07-18 11:08:43 +02:00
Markus Opolka
68881a29f1 More stable apt autoclean 2019-07-15 14:10:30 +02:00
Markus Opolka
10c98a5eb4 Upgrading to Version 3.17.6+190624 2019-06-28 09:44:23 +02:00
Markus Opolka
a665b512e4 Upgrading to Version 3.17.5+190604 2019-06-26 15:45:38 +02:00
Markus Opolka
0e5571811f Upgrading to Version 3.17.4+190529 2019-06-04 18:37:02 +02:00
Markus Opolka
26a95472a7 Upgrading to Version 3.17.3+190429 2019-05-31 09:03:27 +02:00
Markus Opolka
423f4c6133 Add makefile 2019-05-09 10:30:38 +02:00
Markus Opolka
80bc3f4319 Upgrading to Version 3.17.1+190408 2019-04-30 08:37:21 +02:00
Markus Opolka
c30e0878e2 Upgrading to 3.17.0+190402 2019-04-10 18:51:43 +02:00
Markus Opolka
b44b4c2371 Merge pull request #16 from martialblog/checksum
Fix sha256sum check
2019-04-04 09:10:31 +02:00
Markus Opolka
c655c4cf53 Fix sha256sum check
- Its two spaces... TWO SPACES!
 - https://github.com/gliderlabs/docker-alpine/issues/174#issuecomment-222951567
2019-04-04 09:02:47 +02:00
Markus Opolka
6f088023ae Upgrading to Version 3.16.1+190314 2019-04-04 08:36:55 +02:00
Markus Opolka
6531d6131f Upgrading to Version 3.16.1+190225 2019-03-15 14:48:29 +01:00
Markus Opolka
92548e8d6f Fix upgrade script 2019-03-15 14:46:48 +01:00
Markus Opolka
07a9d72c17 Upgrading to Version 3.15.9+190214 2019-02-26 08:50:00 +01:00
Markus Opolka
fcb52d4114 Merge pull request #15 from martialblog/sha-refactor
Add SHA Checksum and better shell debugging
2019-02-19 11:25:19 +01:00
Markus Opolka
9dcf0c94ea Add shell upgrade script 2019-02-19 11:13:21 +01:00
Markus Opolka
97a2506d3d Remove Python upgrade script 2019-02-19 10:40:50 +01:00
Markus Opolka
90c03f7b92 Add sha256 check, shell debug log and PHP production config 2019-02-19 10:40:29 +01:00
Markus Opolka
27a563868d Upgrading to Version 3.15.8+190130 2019-02-15 09:16:01 +01:00
Markus Opolka
1e66840c63 Enable apache mods rewrite, header and remoteip
- To ensure proper Apache config is possible
2019-02-08 16:26:29 +01:00
Markus Opolka
88db810ec2 Upgrading to Version 3.15.7+190124 2019-01-30 17:24:52 +01:00
Markus Opolka
63f4fb4bbb Upgrading to Version 3.15.6+190108 2019-01-23 16:05:17 +01:00
Markus Opolka
5fc47ca735 Upgrading to Version 3.15.5+181115 2019-01-10 08:10:57 +01:00
Markus Opolka
980e145ea4 Upgrading to Version 3.15.3+181108 2018-11-09 13:23:21 +01:00
Markus Opolka
e978fd0717 Upgrading to Version 3.15.1+181017 2018-11-08 09:33:09 +01:00
Markus Opolka
2fa1f94b20 Upgrading to Version 3.15.0+181008 2018-10-18 10:09:20 +02:00
Markus Opolka
cf09eeba7c Upgrading to Version 3.14.10+180926 2018-10-09 08:12:57 +02:00
Markus Opolka
75f9c151a7 Upgrading to Version 3.14.10+180924 2018-09-27 09:27:09 +02:00
Markus Opolka
a5f3d91340 Upgrading to Version 3.14.9+180917 2018-09-26 07:50:38 +02:00
Markus Opolka
55c23248bd Upgrading to Version 3.14.8+180829 2018-09-17 17:44:00 +02:00
Markus Opolka
91ab6439de Merge pull request #14 from martialblog/unix-socket
Add socket check before waiting for database connection
2018-09-15 14:11:12 +02:00
Jack Henschel
b443ca12a7 Add socket check before waiting for database connection
database connection checking with netcat is only possible when
using a TCP/IP connection, just launch the application when the
user chooses a unix socket
2018-09-14 13:41:47 +02:00
Markus Opolka
a05a2528c6 Merge pull request #13 from martialblog/unix-socket
Add option to use unix_socket instead of tcp connection for DB
2018-09-14 09:44:32 +02:00
Jack Henschel
610c377680 Add option to use unix_socket instead of tcp connection for DB 2018-09-14 09:21:04 +02:00
Markus Opolka
cc34159e53 Upgrading to Version 3.14.7+180827 2018-08-31 11:09:42 +02:00
Markus Opolka
cc6937054e Upgrading to Version 3.14.6+180821 2018-08-28 11:02:29 +02:00
Markus Opolka
8f9f1933eb Upgrading to version 3.14.5+180815 2018-08-21 14:38:15 +02:00
Markus Opolka
c59df8396e Add alpine to update script 2018-08-21 14:36:17 +02:00
Markus Opolka
54b9c6b533 Upgrading to Version 3.14.2+180807 2018-08-15 20:01:12 +02:00
Markus Opolka
92291c81ae Merge pull request #11 from martialblog/alpine-fpm
Add fpm-alpine Dockerfile
2018-08-15 14:40:22 +02:00
Markus Opolka
af02bb1f8c Add fpm-alpine Dockerfile 2018-08-15 14:36:32 +02:00
Markus Opolka
cd8f4b825e Updating to Version 3.14.2+180807 2018-08-09 19:23:17 +02:00
Markus Opolka
2683fcee3c Add example docker-compose.yaml for Postgres 2018-08-09 19:22:20 +02:00
Markus Opolka
bef4ac9ae3 Improve entrypoint to check if database is already provisioned 2018-08-09 19:22:17 +02:00
Markus Opolka
4279818967 Fix docker-compose files
- context needed to change
2018-08-08 09:04:17 +02:00
Markus Opolka
481e72194a Updating to Version 3.14.1+180731 2018-08-08 09:02:14 +02:00
Markus Opolka
3f2f632edd Updating to Version 3.14.0+180730 2018-07-31 19:25:16 +02:00
Markus Opolka
13064859d8 Fix Travis build 2018-07-30 10:38:55 +02:00
Markus Opolka
59687fb581 Remove symlinks to entrypoints
- didn't work on DockerHub
2018-07-27 13:59:38 +02:00
Markus Opolka
72aec4b0c5 Updating to Version 3.13.1+180629 2018-07-27 12:28:25 +02:00
Markus Opolka
8e4c52810b Merge pull request #9 from martialblog/add-entrypoint
Add entrypoint and FPM example
2018-07-27 12:25:41 +02:00
Markus Opolka
5dff10bc6e Add examples folder 2018-07-27 12:18:14 +02:00
Markus Opolka
6a91efca55 Update README 2018-07-27 12:15:32 +02:00
Markus Opolka
ed464f3c7d Add example FPM-nginx docker-compose file 2018-07-27 12:15:27 +02:00
Markus Opolka
43ece8e1de Add entrypoint for Container
- Adds config.php if not available
 - Runs console.php for installation
2018-07-27 12:10:35 +02:00
Markus Opolka
f41aff2b87 Fix Regex in Update script 2018-06-15 19:10:29 +02:00
Markus Opolka
dd41cf3b92 Updating to Version 3.12.0+180615 2018-06-15 19:08:46 +02:00
Markus Opolka
6290ea82bf Updating to Version 3.10.0+180611 2018-06-13 06:33:17 +02:00
Markus Opolka
338d5b49d7 Updating to Version 3.8.2+180529 2018-06-04 19:17:13 +02:00
Markus Opolka
806f92df4b Updating to Version 3.8.1+180524 2018-05-29 21:03:40 +02:00
Markus Opolka
107c57f82c Updating to Version 3.8.0+180522 2018-05-25 09:29:05 +02:00
Markus Opolka
8d96eee149 Updating to Version 3.7.3+180516 2018-05-23 08:51:38 +02:00
Markus Opolka
038ccda1f5 Update container-structure-test download path 2018-05-16 12:59:05 +02:00
Markus Opolka
4cf3ada28d Updating to Version 3.7.2+180508 2018-05-16 12:00:26 +02:00
Markus Opolka
1422a7f90c Updating to Version 3.7.1+180424 2018-05-09 09:47:34 +02:00
Markus Opolka
60c137bbb0 Update Update-Script 2018-05-03 18:11:24 +02:00
Markus Opolka
eab1b832b6 Add CONTRIBUTING.md 2018-04-30 13:47:22 +02:00
Markus Opolka
89068ea89d Merge pull request #6 from martialblog/extend-tests
Add container-structore tests
2018-04-30 13:13:07 +02:00
Markus Opolka
c7f1bee380 Add container-structore tests
- Fixes issue #4
2018-04-30 13:06:19 +02:00
Markus Opolka
cb3f54eb90 Add requirements file for Python 2018-04-24 16:06:14 +02:00
Markus Opolka
f143587953 Update to Version 3.7.0+180418 2018-04-24 16:04:53 +02:00
Markus Opolka
b1fdd3fc64 Update to Version 3.6.3+180416 2018-04-18 17:24:55 +02:00
Markus Opolka
84ac1699df Add Update Script 2018-04-16 12:10:50 +02:00
Markus Opolka
b6449a4c22 Update to Version 3.6.2+180406 2018-04-16 12:08:48 +02:00
Markus Opolka
b87a6f75ac Upgrade to Version 3.6.1+180329 2018-04-10 08:45:36 +02:00
Markus Opolka
7096496410 Update to Version 3.5.4+180320 2018-03-28 20:59:38 +02:00
Markus Opolka
cbce400815 Update to Version 3.5.3+180316 2018-03-21 07:51:51 +01:00
Markus Opolka
a7ff191922 Update to Version 3.5.2+180315 2018-03-16 09:44:53 +01:00
Markus Opolka
e14dc2d585 Update to Version 3.5.0+180309 2018-03-15 09:11:26 +01:00
Markus Opolka
798351b5aa Update to Version 3.4.4+180305 2018-03-11 20:46:44 +01:00
Markus Opolka
94c030a008 Update README 2018-03-09 14:24:52 +01:00
Markus Opolka
91d07cc52b Update README 2018-03-09 13:33:34 +01:00
Markus Opolka
c557c38898 Upgrade to Version 3.4.3+180227 2018-03-07 10:36:40 +01:00
Markus Opolka
25653a4676 Update to Version 3.4.1+180221 2018-02-23 16:47:27 +01:00
Markus Opolka
9255e9bbb9 Update README and provide example Apache configuration 2018-02-23 16:46:27 +01:00
Markus Opolka
e39df9a86e Update to Version 3.4.0+180219 2018-02-22 15:24:29 +01:00
56 changed files with 3816 additions and 101 deletions

2
.gitattributes vendored Normal file
View File

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

9
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,9 @@
{
"extends": [
"config:base"
],
"enabledManagers": ["dockerfile", "github-actions"],
"dockerfile": {
"ignorePaths": ["4.0", "nginx-certbot"]
}
}

View File

@@ -0,0 +1,110 @@
name: Publish Latest Container Images
on:
push:
tags:
- '6.*'
jobs:
lint_dockerfiles:
name: Lint Dockerfile with hadolint
runs-on: ubuntu-latest
strategy:
matrix:
dockerfile:
- 6.0/apache/Dockerfile
- 6.0/fpm-alpine/Dockerfile
- 6.0/fpm/Dockerfile
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ${{ matrix.dockerfile }}
ignore: "DL4006,DL3008,DL3018"
push_images_to_registries:
name: Push Container Images to registries
runs-on: ubuntu-latest
needs: [lint_dockerfiles]
environment: docker-build
permissions:
packages: write
contents: read
steps:
- name: 'Check out the repo'
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v3
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: 'Log in to DockerHub'
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: 'Apache variant metadata'
id: metadata-apache
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
tags: |
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=true
suffix=-apache
- name: 'Build and push latest Apache container images'
uses: docker/build-push-action@v5
with:
context: 6.0/apache
push: true
tags: ${{ steps.metadata-apache.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: linux/amd64,linux/arm64
- name: 'FPM variant metadata'
id: metadata-fpm
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
tags: |
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm
- name: 'Build and push latest fpm container images'
uses: docker/build-push-action@v5
with:
context: 6.0/fpm
push: true
tags: ${{ steps.metadata-fpm.outputs.tags }}
labels: ${{ steps.metadata-fpm.outputs.labels }}
platforms: linux/amd64,linux/arm64
- name: 'FPM Alpine variant metadata'
id: metadata-fpm-alpine
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
tags: |
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm-alpine
- name: 'Build and push latest fpm-alpine container images'
uses: docker/build-push-action@v5
with:
context: 6.0/fpm-alpine
push: true
tags: ${{ steps.metadata-fpm-alpine.outputs.tags }}
labels: ${{ steps.metadata-fpm-alpine.outputs.labels }}
platforms: linux/amd64,linux/arm64

View File

@@ -0,0 +1,110 @@
name: Publish LTS Container Images
on:
push:
tags:
- '5.*'
jobs:
lint_dockerfiles:
name: 'Lint Dockerfile with hadolint'
runs-on: ubuntu-latest
strategy:
matrix:
dockerfile:
- 5.0/apache/Dockerfile
- 5.0/fpm-alpine/Dockerfile
- 5.0/fpm/Dockerfile
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ${{ matrix.dockerfile }}
ignore: "DL4006,DL3008,DL3018"
push_images_to_registries:
name: 'Push container images to registries'
runs-on: ubuntu-latest
needs: [lint_dockerfiles]
environment: docker-build
permissions:
packages: write
contents: read
steps:
- name: 'Check out the repo'
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v3
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: 'Log in to DockerHub'
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: 'Apache variant metadata'
id: metadata-apache
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
tags: |
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-apache
- name: 'Build and push LTS apache container images'
uses: docker/build-push-action@v5
with:
context: 5.0/apache
push: true
tags: ${{ steps.metadata-apache.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: linux/amd64,linux/arm64
- name: 'FPM variant metadata'
id: metadata-fpm
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
tags: |
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm
- name: 'Build and push LTS fpm container images'
uses: docker/build-push-action@v5
with:
context: 5.0/fpm
push: true
tags: ${{ steps.metadata-fpm.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: linux/amd64,linux/arm64
- name: 'FPM Alpine variant metadata'
id: metadata-fpm-alpine
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
tags: |
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm-alpine
- name: 'Build and push LTS fpm-alpine container images'
uses: docker/build-push-action@v5
with:
context: 5.0/fpm-alpine
push: true
tags: ${{ steps.metadata-fpm-alpine.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: linux/amd64,linux/arm64

24
.github/workflows/lint-dockerfiles.yaml vendored Normal file
View File

@@ -0,0 +1,24 @@
---
name: Lint Dockerfile
on: [push, pull_request]
jobs:
lint:
name: Lint Dockerfile with hadolint
strategy:
matrix:
dockerfile:
- 5.0/apache/Dockerfile
- 5.0/fpm-alpine/Dockerfile
- 5.0/fpm/Dockerfile
- 6.0/apache/Dockerfile
- 6.0/fpm-alpine/Dockerfile
- 6.0/fpm/Dockerfile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ${{ matrix.dockerfile }}
ignore: "DL4006,DL3008,DL3018"

View File

@@ -0,0 +1,48 @@
name: Test ARM Container Images
on:
push:
branches:
- 'arm/**'
pull_request:
branches:
- 'arm/**'
jobs:
test_images:
name: Test Latest Container Images
runs-on: ubuntu-latest
strategy:
matrix:
context:
- apache
- fpm-alpine
- fpm
platform:
- linux/arm64
steps:
- name: 'Check out the repo'
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v3
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v3
- name: 'Build Container images'
uses: docker/build-push-action@v5
with:
context: 6.0/${{ matrix.context }}
push: false
load: true
tags: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
platforms: ${{ matrix.platform }}
- name: 'Run Structure tests'
uses: plexsystems/container-structure-test-action@v0.3.0
with:
image: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml

View File

@@ -0,0 +1,39 @@
name: Test Latest Container Images
on: [push, pull_request]
jobs:
test_images:
name: Test Latest Container Images
runs-on: ubuntu-latest
strategy:
matrix:
context:
- apache
- fpm-alpine
- fpm
steps:
- name: 'Check out the repo'
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v3
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v3
- name: 'Build Container images'
uses: docker/build-push-action@v5
with:
context: 6.0/${{ matrix.context }}
push: false
load: true
tags: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
- name: 'Run Structure tests'
uses: plexsystems/container-structure-test-action@v0.3.0
with:
image: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml

View File

@@ -0,0 +1,37 @@
name: Test LTS Container Images
on: [push, pull_request]
jobs:
test_images:
name: Test LTS Container Images
runs-on: ubuntu-latest
strategy:
matrix:
context:
- apache
- fpm-alpine
- fpm
steps:
- name: 'Check out the repo'
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v3
- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v3
- name: 'Build Container images'
uses: docker/build-push-action@v5
with:
context: 5.0/${{ matrix.context }}
push: false
load: true
tags: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
- name: 'Run Structure tests'
uses: plexsystems/container-structure-test-action@v0.3.0
with:
image: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
\#*
.\#*
.venv/
container-structure-test

View File

@@ -1,10 +0,0 @@
sudo: required
language: bash
services:
- docker
matrix:
include:
- env: TEST=limesurvey-apache
script: docker build -t martialblog/limesurvey-apache -f apache/Dockerfile .
- env: TEST=limesurvey-fpm
script: docker build -t martialblog/limesurvey-fpm -f fpm/Dockerfile .

103
3.0/apache/Dockerfile Normal file
View File

@@ -0,0 +1,103 @@
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Apache configuration
RUN a2enmod headers rewrite remoteip; \
{\
echo RemoteIPHeader X-Real-IP ;\
echo RemoteIPTrustedProxy 10.0.0.0/8 ;\
echo RemoteIPTrustedProxy 172.16.0.0/12 ;\
echo RemoteIPTrustedProxy 192.168.0.0/16 ;\
} > /etc/apache2/conf-available/remoteip.conf;\
a2enconf remoteip
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="3.28.59+230517"
ARG sha256_checksum="e048eaaf5260a8d6391609c355bb4df8c8ef0e0943b2d612d2a8414956db622a"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ARG USER=root
ARG LISTEN_PORT=80
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R www-data:www-data /var/www/html /etc/apache2
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"]

140
3.0/apache/entrypoint.sh Executable file
View File

@@ -0,0 +1,140 @@
#!/bin/bash
# Entrypoint for Docker Container
DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"80"}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD'
exit 1
fi
if [ "$LISTEN_PORT" != "80" ]; then
echo "Info: Customizing Apache Listen port to $LISTEN_PORT"
sed -i "s/Listen 80\$/Listen $LISTEN_PORT/" /etc/apache2/ports.conf /etc/apache2/sites-available/000-default.conf
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

@@ -0,0 +1,3 @@
SetEnvIF User-Agent "(?i)(check|health|probe)" dontlog
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog

73
3.0/fpm-alpine/Dockerfile Normal file
View File

@@ -0,0 +1,73 @@
FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN apk add --no-cache netcat-openbsd bash
# Install PHP Plugins
# hadolint ignore=SC2086
RUN set -ex; \
apk add --no-cache --virtual .build-deps \
freetype-dev \
libpng-dev \
libzip-dev \
libjpeg-turbo-dev \
tidyhtml-dev \
libsodium-dev \
openldap-dev \
oniguruma-dev \
imap-dev \
postgresql-dev \
; \
\
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-imap-ssl; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
apk del --no-cache --no-network .build-deps
ARG version="3.28.59+230517"
ARG sha256_checksum="e048eaaf5260a8d6391609c355bb4df8c8ef0e0943b2d612d2a8414956db622a"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
\
rm -rf "/tmp/limesurvey.tar.gz" \
/var/www/html/docs \
/var/www/html/tests \
/var/www/html/*.md && \
chown -R www-data:root /var/www/ ; \
chmod -R g=u /var/www
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

133
3.0/fpm-alpine/entrypoint.sh Executable file
View File

@@ -0,0 +1,133 @@
#!/bin/bash
# Entrypoint for Docker Container
DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD'
exit 1
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

88
3.0/fpm/Dockerfile Normal file
View File

@@ -0,0 +1,88 @@
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
ARG version="3.28.59+230517"
ARG sha256_checksum="e048eaaf5260a8d6391609c355bb4df8c8ef0e0943b2d612d2a8414956db622a"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R www-data:www-data /var/www/html
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

133
3.0/fpm/entrypoint.sh Executable file
View File

@@ -0,0 +1,133 @@
#!/bin/bash
# Entrypoint for Docker Container
DB_TYPE=${DB_TYPE:-'mysql'}
DB_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_PASSWORD=${DB_PASSWORD:-}
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD'
exit 1
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

107
5.0/apache/Dockerfile Normal file
View File

@@ -0,0 +1,107 @@
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Apache configuration
RUN a2enmod headers rewrite remoteip; \
{\
echo RemoteIPHeader X-Real-IP ;\
echo RemoteIPTrustedProxy 10.0.0.0/8 ;\
echo RemoteIPTrustedProxy 172.16.0.0/12 ;\
echo RemoteIPTrustedProxy 192.168.0.0/16 ;\
} > /etc/apache2/conf-available/remoteip.conf;\
a2enconf remoteip
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="5.6.56+240227"
ARG sha256_checksum="549816d7a57eaf20e82fed2e185538f2740f6475212432a63fcb1f197fe3de64"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data
ARG LISTEN_PORT=8080
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R "$USER:$USER" /var/www/html /etc/apache2
EXPOSE $LISTEN_PORT
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"]

189
5.0/apache/entrypoint.sh Executable file
View File

@@ -0,0 +1,189 @@
#!/bin/bash
# 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_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
file_env 'ENCRYPT_KEYPAIR'
file_env 'ENCRYPT_PUBLIC_KEY'
file_env 'ENCRYPT_SECRET_KEY'
file_env 'ENCRYPT_NONCE'
file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"8080"}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
if [ "$LISTEN_PORT" != "80" ]; then
echo "Info: Customizing Apache Listen port to $LISTEN_PORT"
sed -i "s/Listen 80\$/Listen $LISTEN_PORT/" /etc/apache2/ports.conf /etc/apache2/sites-available/000-default.conf
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
\$config = array();
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config;
EOF
else
echo >&2 'Warning: No encryption keys were provided'
echo >&2 'Warning: A security.php config will be created by the application'
echo >&2 'Warning: THIS FILE NEEDS TO BE PERSISTENT'
fi
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

@@ -0,0 +1,3 @@
SetEnvIF User-Agent "(?i)(check|health|probe)" dontlog
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog

80
5.0/fpm-alpine/Dockerfile Normal file
View File

@@ -0,0 +1,80 @@
FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apk add --no-cache \
netcat-openbsd \
libsasl \
libldap \
bash
# Install PHP Plugins
# hadolint ignore=SC2086
RUN set -ex; \
apk add --no-cache --virtual .build-deps \
freetype-dev \
libpng-dev \
libzip-dev \
libjpeg-turbo-dev \
tidyhtml-dev \
libsodium-dev \
openldap-dev \
oniguruma-dev \
imap-dev \
postgresql-dev \
; \
\
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-imap-ssl; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
apk del --no-cache --no-network .build-deps
ARG version="5.6.56+240227"
ARG sha256_checksum="549816d7a57eaf20e82fed2e185538f2740f6475212432a63fcb1f197fe3de64"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
\
rm -rf "/tmp/limesurvey.tar.gz" \
/var/www/html/docs \
/var/www/html/tests \
/var/www/html/*.md && \
chown -R "${USER}:root" /var/www/ ; \
chmod -R g=u /var/www
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

182
5.0/fpm-alpine/entrypoint.sh Executable file
View File

@@ -0,0 +1,182 @@
#!/bin/bash
# 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_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
file_env 'ENCRYPT_KEYPAIR'
file_env 'ENCRYPT_PUBLIC_KEY'
file_env 'ENCRYPT_SECRET_KEY'
file_env 'ENCRYPT_NONCE'
file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
\$config = array();
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config;
EOF
else
echo >&2 'Warning: No encryption keys were provided'
echo >&2 'Warning: A security.php config will be created by the application'
echo >&2 'Warning: THIS FILE NEEDS TO BE PERSISTENT'
fi
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

92
5.0/fpm/Dockerfile Normal file
View File

@@ -0,0 +1,92 @@
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
ARG version="5.6.56+240227"
ARG sha256_checksum="549816d7a57eaf20e82fed2e185538f2740f6475212432a63fcb1f197fe3de64"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R "$USER:$USER" /var/www/html
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

182
5.0/fpm/entrypoint.sh Executable file
View File

@@ -0,0 +1,182 @@
#!/bin/bash
# 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_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
file_env 'ENCRYPT_KEYPAIR'
file_env 'ENCRYPT_PUBLIC_KEY'
file_env 'ENCRYPT_SECRET_KEY'
file_env 'ENCRYPT_NONCE'
file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
\$config = array();
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config;
EOF
else
echo >&2 'Warning: No encryption keys were provided'
echo >&2 'Warning: A security.php config will be created by the application'
echo >&2 'Warning: THIS FILE NEEDS TO BE PERSISTENT'
fi
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

114
6.0/apache/Dockerfile Normal file
View File

@@ -0,0 +1,114 @@
FROM docker.io/php:8.1-apache
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '$3 ~ /^\/lib/ { print "/usr"$3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Apache configuration
RUN a2enmod headers rewrite remoteip; \
{\
echo RemoteIPHeader X-Real-IP ;\
echo RemoteIPTrustedProxy 10.0.0.0/8 ;\
echo RemoteIPTrustedProxy 172.16.0.0/12 ;\
echo RemoteIPTrustedProxy 192.168.0.0/16 ;\
} > /etc/apache2/conf-available/remoteip.conf;\
a2enconf remoteip
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="6.4.9+240226"
ARG sha256_checksum="7edffb70d7139b380cf16aae118a9f11ee15145e9360e37d09a4735990facd91"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data
ARG LISTEN_PORT=8080
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R "$USER:$USER" /var/www/html /etc/apache2
EXPOSE $LISTEN_PORT
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"]

189
6.0/apache/entrypoint.sh Executable file
View File

@@ -0,0 +1,189 @@
#!/bin/bash
# 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_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
file_env 'ENCRYPT_KEYPAIR'
file_env 'ENCRYPT_PUBLIC_KEY'
file_env 'ENCRYPT_SECRET_KEY'
file_env 'ENCRYPT_NONCE'
file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"8080"}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
if [ "$LISTEN_PORT" != "80" ]; then
echo "Info: Customizing Apache Listen port to $LISTEN_PORT"
sed -i "s/Listen 80\$/Listen $LISTEN_PORT/" /etc/apache2/ports.conf /etc/apache2/sites-available/000-default.conf
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
\$config = array();
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config;
EOF
else
echo >&2 'Warning: No encryption keys were provided'
echo >&2 'Warning: A security.php config will be created by the application'
echo >&2 'Warning: THIS FILE NEEDS TO BE PERSISTENT'
fi
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

@@ -0,0 +1,3 @@
SetEnvIF User-Agent "(?i)(check|health|probe)" dontlog
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog

80
6.0/fpm-alpine/Dockerfile Normal file
View File

@@ -0,0 +1,80 @@
FROM docker.io/php:8.1-fpm-alpine
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apk add --no-cache \
netcat-openbsd \
libsasl \
libldap \
bash
# Install PHP Plugins
# hadolint ignore=SC2086
RUN set -ex; \
apk add --no-cache --virtual .build-deps \
freetype-dev \
libpng-dev \
libzip-dev \
libjpeg-turbo-dev \
tidyhtml-dev \
libsodium-dev \
openldap-dev \
oniguruma-dev \
imap-dev \
postgresql-dev \
; \
\
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-imap-ssl; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
apk del --no-cache --no-network .build-deps
ARG version="6.4.9+240226"
ARG sha256_checksum="7edffb70d7139b380cf16aae118a9f11ee15145e9360e37d09a4735990facd91"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
\
rm -rf "/tmp/limesurvey.tar.gz" \
/var/www/html/docs \
/var/www/html/tests \
/var/www/html/*.md && \
chown -R "${USER}:root" /var/www/ ; \
chmod -R g=u /var/www
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

182
6.0/fpm-alpine/entrypoint.sh Executable file
View File

@@ -0,0 +1,182 @@
#!/bin/bash
# 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_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
file_env 'ENCRYPT_KEYPAIR'
file_env 'ENCRYPT_PUBLIC_KEY'
file_env 'ENCRYPT_SECRET_KEY'
file_env 'ENCRYPT_NONCE'
file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
\$config = array();
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config;
EOF
else
echo >&2 'Warning: No encryption keys were provided'
echo >&2 'Warning: A security.php config will be created by the application'
echo >&2 'Warning: THIS FILE NEEDS TO BE PERSISTENT'
fi
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

99
6.0/fpm/Dockerfile Normal file
View File

@@ -0,0 +1,99 @@
FROM docker.io/php:8.1-fpm
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '$3 ~ /^\/lib/ { print "/usr"$3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
ARG version="6.4.9+240226"
ARG sha256_checksum="7edffb70d7139b380cf16aae118a9f11ee15145e9360e37d09a4735990facd91"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=www-data
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "${archive_url}" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R "$USER:$USER" /var/www/html
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

182
6.0/fpm/entrypoint.sh Executable file
View File

@@ -0,0 +1,182 @@
#!/bin/bash
# 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_HOST=${DB_HOST:-'mysql'}
DB_PORT=${DB_PORT:-'3306'}
DB_SOCK=${DB_SOCK:-}
DB_NAME=${DB_NAME:-'limesurvey'}
DB_TABLE_PREFIX=${DB_TABLE_PREFIX:-'lime_'}
DB_USERNAME=${DB_USERNAME:-'limesurvey'}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
file_env 'ENCRYPT_KEYPAIR'
file_env 'ENCRYPT_PUBLIC_KEY'
file_env 'ENCRYPT_SECRET_KEY'
file_env 'ENCRYPT_NONCE'
file_env 'ENCRYPT_SECRET_BOX_KEY'
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
ADMIN_EMAIL=${ADMIN_EMAIL:-'foobar@example.com'}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
done
fi
# Check if config already provisioned
if [ -f application/config/config.php ]; then
echo 'Info: config.php already provisioned'
else
echo 'Info: Generating config.php'
if [ "$DB_TYPE" = 'mysql' ]; then
echo 'Info: Using MySQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8mb4'}
fi
if [ "$DB_TYPE" = 'pgsql' ]; then
echo 'Info: Using PostgreSQL configuration'
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
echo 'Info: Using TCP connection'
DB_CONNECT='host'
fi
if [ -z "$PUBLIC_URL" ]; then
echo 'Info: Setting PublicURL'
fi
cat <<EOF > application/config/config.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
return array(
'components' => array(
'db' => array(
'connectionString' => '$DB_TYPE:$DB_CONNECT=$DB_HOST;port=$DB_PORT;dbname=$DB_NAME;',
'emulatePrepare' => true,
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
),
),
'config'=>array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
\$config = array();
\$config['encryptionkeypair'] = '$ENCRYPT_KEYPAIR';
\$config['encryptionpublickey'] = '$ENCRYPT_PUBLIC_KEY';
\$config['encryptionsecretkey'] = '$ENCRYPT_SECRET_KEY';
\$config['encryptionnonce'] = '$ENCRYPT_NONCE';
\$config['encryptionsecretboxkey'] = '$ENCRYPT_SECRET_BOX_KEY';
return \$config;
EOF
else
echo >&2 'Warning: No encryption keys were provided'
echo >&2 'Warning: A security.php config will be created by the application'
echo >&2 'Warning: THIS FILE NEEDS TO BE PERSISTENT'
fi
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

67
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,67 @@
# Contributing
Every Pull Request is welcome.
## Branches
Choosing a proper name for a branch helps us identify its purpose and possibly find an associated bug or feature. Generally a branch name should include a topic such as `fix` or `feature` followed by a description. Branches should have only changes relevant to a specific issue.
```
git checkout -b fix/bug-in-connection
git checkout -b feature/improved-config-handling
git checkout -b doc/fix-typo
```
## Upgrading the Version
The versions in this repository should correspond to the [GitHub LimeSurvey Releases](https://github.com/LimeSurvey/LimeSurvey/releases)
To update the version, simply update ARG variables for version and corresponding checksum:
```bash
# Version from GitHub Tags
# sha256 of tar.gz from GitHub Releases
$ grep ARG 5.0/apache/Dockerfile
ARG version='5.3.13+200824'
ARG sha256_checksum='4e9c6f20e'
```
It is best to use the upgrade shell script:
```bash
./upgrade.sh 5.3.13+200824
# Check if sha256 is correct
git add 5.0/ && git commit -m 'Upgrading to Version 5.3.13+200824'
git tag 5.3.13-200824
```
## Testing
In order to make sure the image works as promised, some container-structure-tests are provided. The tests require the `container-structure-test` tool to be installed.
For further information: https://github.com/GoogleContainerTools/container-structure-test
```bash
make apache-latest
container-structure-test test --image docker.io/martialblog/limesurvey:5-apache --config tests/apache-tests.yaml
```
```bash
make fpm-latest
container-structure-test test --image docker.io/martialblog/limesurvey:5-fpm-alpine --config tests/fpm-alpine-tests.yaml
```
```bash
make fpm-alpine-latest
container-structure-test test --image docker.io/martialblog/limesurvey:5-fpm --config tests/fpm-tests.yaml
```
### ARM Platform
Changes related to the ARM platform should use branches starting with the `arm/` prefix, this ensures the GitHub Actions are triggered.
Background: ARM builds take a long time to finish on the GitHub Runners.

14
Makefile Normal file
View File

@@ -0,0 +1,14 @@
RUNTIME?=podman
apache-lts:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:5-apache 5.0/apache
apache-latest:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:6-apache 6.0/apache
fpm-alpine-lts:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:5-fpm-alpine 5.0/fpm-alpine
fpm-alpine-latest:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:6-fpm-alpine 6.0/fpm-alpine
fpm-lts:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:5-fpm 5.0/fpm
fpm-latest:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:6-fpm 6.0/fpm

226
README.md
View File

@@ -1,10 +1,228 @@
[![Build Status](https://travis-ci.org/martialblog/docker-limesurvey.svg?branch=master)](https://travis-ci.org/martialblog/docker-limesurvey) [![Lint Dockerfile](https://github.com/martialblog/docker-limesurvey/actions/workflows/lint-dockerfiles.yaml/badge.svg)](https://github.com/martialblog/docker-limesurvey/actions/workflows/lint-dockerfiles.yaml)
[![Test LTS Container Images](https://github.com/martialblog/docker-limesurvey/actions/workflows/test-lts-container-images.yaml/badge.svg)](https://github.com/martialblog/docker-limesurvey/actions/workflows/test-lts-container-images.yaml)
[![Test Latest Container Images](https://github.com/martialblog/docker-limesurvey/actions/workflows/test-latest-container-images.yaml/badge.svg)](https://github.com/martialblog/docker-limesurvey/actions/workflows/test-latest-container-images.yaml)
[![](https://images.microbadger.com/badges/image/martialblog/limesurvey.svg)](https://microbadger.com/images/martialblog/limesurvey "Get your own image badge on microbadger.com") [![](https://images.microbadger.com/badges/image/martialblog/limesurvey.svg)](https://microbadger.com/images/martialblog/limesurvey "Get your own image badge on microbadger.com")
# LimeSurvey Docker # LimeSurvey Docker
Dockerfile to build a [LimeSurvey](https://limesurvey.org) image for the Docker container platform. Dockerfile to build a [LimeSurvey](https://limesurvey.org) Image for the Docker container platform.
# Persistence ## Quick reference
To preserve the uploaded files assign the upload folder into a volume. See *docker-compose.yml* for details. - **Maintained by:** https://github.com/martialblog/
- **Where to get help:** [GitHub Issues](https://github.com/martialblog/docker-limesurvey/issues)
## Supported tags and respective Dockerfile links
- [`6-apache`, `6.<BUILD-NUMBER>-apache`, `latest` ](https://github.com/martialblog/docker-limesurvey/blob/master/6.0/apache/Dockerfile)
- [`6-fpm`, `6.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/6.0/fpm/Dockerfile)
- [`6-fpm-alpine`, `6.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/6.0/fpm-alpine/Dockerfile)
- [`5-apache`, `5.<BUILD-NUMBER>-apache`, `latest` ](https://github.com/martialblog/docker-limesurvey/blob/master/5.0/apache/Dockerfile)
- [`5-fpm`, `5.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/5.0/fpm/Dockerfile)
- [`5-fpm-alpine`, `5.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/5.0/fpm-alpine/Dockerfile)
# Using the Apache Image
The `apache` image comes with an Apache Webserver and PHP installed.
This image is also available in a `rootless` variant with `www-data` as default user and Apache listening on 8080. Starting from 5.0, the `rootless` variant is the default for Apache images.
## Apache Configuration
To change to Apache Webserver configuration, mount a Volume into the Container at:
- `/etc/apache2/sites-available/000-default.conf`
See the example configuration provided.
The Apache port can be specified by setting the environment variable `LISTEN_PORT` (e.g. `LISTEN_PORT=8080`). Starting from 5.0, Apache defaults to listening on a non-privilged port (8080) in inside the container.
# 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.
## Using the fpm Image with HTTPS
If you would like to run the fpm setup with https, you can get a free certificate from Letsencrypt. As an example, the configuration in *docker-compose.fpm-certbot.yml*
will take care of getting a certificate and installing it. Please note that you will have to adjust the domain name in the file *examples/nginx-certbot.conf* to match
the domain used in the *HOSTNAMES* variable in the docker-compose configuration file. If you added both the a domain and the hostname *www* within the domain,
*nginx-certbot.conf* needs to contain the domain without the hostname. E.g. if you set *"HOSTNAMES=example.org www.example.org"*, the path in *nginx-certbot.conf* needs
to contain *example.org*.
# Using an external database
LimeSurvey requires an external database (MySQL, PostgreSQL) to run. See *docker-compose.yml* for example.
# Persistent data
To preserve the uploaded files assign the upload folder into a volume. See *docker-compose.yml* for example.
Path: `/var/www/html/upload/surveys`
**Hint**: The mounted directory must be owned by the webserver user (e.g. www-data)
# LimeSurvey configuration
The entrypoint will create a new config.php if none is provided and run the LimeSurvey command line interface for installation.
**Hint**: Changing the *ADMIN_* configuration has no effect after the initial configuration. It's best to do this within the application.
To change to LimeSurvey configuration, you can mount a Volume into the Container at:
- `/my-data/config.php:/var/www/html/application/config/config.php`
**Hint**: If this configuration is present before the installation, the LimeSurvey Web Installer will not run automatically.
## Data encryption
LimeSurvey version 4.0 and newer support data encryption, this image give you these options:
* Provide a security.php file directly (volume)
* Provide encryption keys for the `security.php` file (environment variables)
* Provide nothing and get a non-persistent `security.php` file
For further details on the settings see: https://manual.limesurvey.org/Data_encryption
# Reverse Proxy configuration
If you are running LimeSurvey behind a Reverse Proxy you might need some additional configuration in the Proxy. For example:
* Apache: `ProxyPreserveHost On`
* Nginx: `fastcgi_param HTTP_HOST my-survey.example.local;`
* Traefik: Set the Host Header explicitly via a customRequestHeaders
## 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
"traefik.http.routers.limesurvey.rule=PathPrefix(`/limesurvey`)",
"traefik.http.routers.limesurvey.middlewares=strip-limesurvey@docker",
"traefik.http.middlewares.strip-limesurvey.stripprefix.prefixes=/limesurvey",
```
# Environment Variables
| Parameter | Description |
| --------- | ----------- |
| DB_TYPE | Database Type to use. mysql or pgsql |
| DB_HOST | Database server hostname |
| DB_PORT | Database server port |
| DB_SOCK | Database unix socket instead of host/port |
| DB_NAME | Database name |
| 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_PASSWORD | Database user's password |
| ADMIN_USER | Initial LimeSurvey Admin Username (for signing into admin panel) |
| ADMIN_NAME | Initial LimeSurvey Admin Name |
| ADMIN_EMAIL | Initial LimeSurvey Admin Email |
| ADMIN_PASSWORD | Initial LimeSurvey Admin Password (for signing into admin panel) |
| PUBLIC_URL | Public URL for public scripts |
| BASE_URL | Application Base URL |
| URL_FORMAT | URL Format. path or get |
| TABLE_SESSION | Enable table sessions (true) |
| SHOW_SCRIPT_NAME | Script name in URL (true\|false). Default: true |
| DEBUG | Debug level (0, 1, 2). Default: 0 |
| DEBUG_SQL | SQL Debug level (0, 1, 2). Default 0 |
| ENCRYPT_KEYPAIR | Data encryption keypair |
| ENCRYPT_PUBLIC_KEY | Data encryption public key |
| ENCRYPT_SECRET_KEY | Data encryption secret key |
| ENCRYPT_NONCE | Data encryption nonce (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 |
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
# 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).
**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
# Frontend
http://localhost:8080/
# Backend
http://localhost:8080/index.php/admin
```
# Running LimeSurvey with Helm
A Helm Chart for this Image can be used for deployments. Please refer to the Helm Repository for further details:
https://github.com/martialblog/helm-charts
# Upgrade Guide
These guides are only referring to the Docker Image, for details on the application users should consult the [official LimeSurvey documentation](https://manual.limesurvey.org/Upgrading_from_a_previous_version) for details.
## Upgrading the FPM Images
If you are using docker-compose to run the FPM Images, you need to stop the application and webserver Containers and delete the application volume:
```
$ docker volume ls
DRIVER VOLUME NAME
local docker-limesurvey_lime
$ docker volume rm docker-limesurvey_lime
```
## Upgrading to 6.0 from 5.x
The LimeSurvey 6 Images will use PHP 8.1 as Base Images.
LimeSurvey 5 will become the new LTS. LimeSurvey 3 is deprecated and will no longer be supported.
## Upgrading to 5.0 from 4.x
The default user in the Container will now be *www-data* (uid 33 in Debian, uid 82 in Alpine), any volumes mounted need the corresponding permissions:
```
# Debian
$ ls -ln upload/
total 4
drwxr-xr-x 3 33 33 4096 Jun 3 13:51 surveys
```
```
# Alpine
$ ls -ln upload/
total 4
drwxr-xr-x 3 82 82 4096 Jun 3 13:51 surveys
```
If you are using the Apache2 Images, the default port will now be **8080**. Depending on your setup the port configurations might need adjustment.
# Known Issues
## LimeSurvey behind a reverse proxy with a subdirectory
When running LimeSurvey behind a reverse proxy with a subdirectory (i.e. example.com/limesurvey), the admin area might not be displayed correctly due to a routing issue. The application will forward you to the BASE URL regardless.
This might be fixed by setting the HTTP Host Header in the reverse proxy explicitly.
See:
- https://github.com/martialblog/docker-limesurvey/issues/127
# References
- https://www.limesurvey.org/
- https://github.com/LimeSurvey/LimeSurvey/

View File

@@ -1,40 +0,0 @@
FROM php:7.2-apache
LABEL maintainer="markus@martialblog.de"
ARG version='3.3.1'
# Install OS dependencies
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
libldap2-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
&& apt-get autoclean; apt-get autoremove && \
rm -rf /var/lib/apt/lists/*
# Link LDAP library for PHP ldap extension
RUN ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# Configure PHP imap plugin
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl
# Install PHP Plugins
RUN docker-php-ext-install -j5 \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
zip
# Download, unzip and chmod of LimeSurvey
ADD "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" /tmp
RUN tar xzvf "/tmp/${version}.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm "/tmp/${version}.tar.gz" && \
chown -R www-data:www-data /var/www/html

29
docker-compose.apache.yml Normal file
View File

@@ -0,0 +1,29 @@
version: "3.0"
services:
limesurvey:
image: docker.io/martialblog/limesurvey:latest
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://my.survey.localhost:8080" # Example, Change this
- "BASE_URL=http://my.survey.localhost:8080" # Example, Change this
proxy:
image: docker.io/httpd:bullseye
volumes:
- "./examples/apache-httpd.conf:/usr/local/apache2/conf/httpd.conf:ro"
- "./examples/apache-reverse-proxy.conf:/usr/local/apache2/conf/reverse-proxy.conf:ro"
ports:
- "8080:8080"
lime-db:
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="

View File

@@ -0,0 +1,36 @@
version: '3'
services:
limesurvey:
image: docker.io/martialblog/limesurvey:latest
restart: always
environment:
- DB_TYPE=pgsql
- DB_PORT=5432
- DB_HOST=db
# - DB_PASSWORD=
- DB_NAME=limesurvey
- DB_USERNAME=limesurvey
- ADMIN_USER=admin
- ADMIN_NAME=Admin
# - ADMIN_PASSWORD=
- ADMIN_EMAIL=admin@example.com
- PUBLIC_URL=foobar.com
volumes:
- limesurvey:/var/www/html/upload/surveys
ports:
- 8080:8080
depends_on:
- db
db:
image: docker.io/postgres:10-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=limesurvey
- POSTGRES_DB=limesurvey
# - POSTGRES_PASSWORD=
volumes:
limesurvey:
db-data:

View File

@@ -0,0 +1,50 @@
version: "3.0"
services:
limesurvey:
build:
context: 6.0/fpm/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
- /tmp/upload/surveys:/var/www/html/upload/surveys
- lime:/var/www/html
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-web:
build:
context: nginx-certbot/
dockerfile: Dockerfile
links:
- limesurvey
ports:
- "80:80"
- "443:443"
volumes:
- ./examples/nginx-certbot.conf:/etc/nginx/nginx.conf:ro
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
- lime:/var/www/html
environment:
- "HOSTNAMES=www.example.com example.com"
certbot:
image: docker.io/certbot/certbot
restart: unless-stopped
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
lime-db:
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="
volumes:
lime:

View File

@@ -0,0 +1,38 @@
version: "3.0"
services:
limesurvey:
build:
context: 6.0/fpm-alpine/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
- /tmp/upload/surveys:/var/www/html/upload/surveys
- lime:/var/www/html
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-web:
image: docker.io/nginx:alpine
links:
- limesurvey
depends_on:
- limesurvey
ports:
- "8080:80"
volumes:
- ./examples/nginx.conf:/etc/nginx/nginx.conf:ro
- lime:/var/www/html
lime-db:
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="
volumes:
lime:

36
docker-compose.fpm.yml Normal file
View File

@@ -0,0 +1,36 @@
version: "3.0"
services:
limesurvey:
build:
context: 6.0/fpm/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
- /tmp/upload/surveys:/var/www/html/upload/surveys
- lime:/var/www/html
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-web:
image: docker.io/nginx
links:
- limesurvey
ports:
- "8080:80"
volumes:
- ./examples/nginx.conf:/etc/nginx/nginx.conf:ro
- lime:/var/www/html
lime-db:
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="
volumes:
lime:

34
docker-compose.pgsql.yml Normal file
View File

@@ -0,0 +1,34 @@
version: "3.0"
services:
limesurvey:
build:
# Hint: Change it to 3.0/apache/ if you want to use LimeSurvey 3.*
context: 6.0/apache/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
- /tmp/upload/surveys:/var/www/html/upload/surveys
links:
- lime-db
depends_on:
- lime-db
ports:
# Hint: Change it to 80:8080 if you are using LimeSurvey 3.*
- "8080:8080"
environment:
- "DB_TYPE=pgsql"
- "DB_PORT=5432"
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-db:
image: docker.io/postgres:10
volumes:
- db-data:/var/lib/postgresql/data
environment:
- "POSTGRES_USER=limesurvey"
- "POSTGRES_DB=limesurvey"
# - "POSTGRES_PASSWORD="
volumes:
db-data:

View File

@@ -0,0 +1,41 @@
version: "3.0"
services:
limesurvey:
build:
context: 6.0/apache/
dockerfile: Dockerfile
labels:
traefik.enable: 'true'
traefik.http.routers.limesurvey-http-router.entrypoints: "http"
traefik.http.routers.limesurvey-http-router.rule: "Host(`my.survey.localhost`)"
traefik.http.services.limesurvey-service.loadbalancer.server.port: "8080"
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://my.survey.localhost:8888"
- "BASE_URL=http://my.survey.localhost:8888"
traefik:
image: docker.io/traefik:v2.9
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: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="

View File

@@ -0,0 +1,45 @@
version: "3.0"
services:
limesurvey:
build:
context: 6.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="
# - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://localhost:8888/limesurvey"
- "BASE_URL=http://localhost:8888/limesurvey"
traefik:
image: docker.io/traefik:v2.9
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: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="

View File

@@ -2,20 +2,27 @@ version: "3.0"
services: services:
limesurvey: limesurvey:
build: build:
context: . context: 6.0/apache/
dockerfile: apache/Dockerfile dockerfile: Dockerfile
volumes: volumes:
- /tmp/upload/:/var/www/html/upload/ # Hint: This is just an example, change /tmp to something persistent
- /tmp/upload/surveys:/var/www/html/upload/surveys
links: links:
- lime-db - lime-db
depends_on: depends_on:
- lime-db - lime-db
ports: ports:
- "8080:80" - "8080:8080"
environment:
- "DB_HOST=lime-db"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
# 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: docker.io/mysql:5.7
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

@@ -0,0 +1,21 @@
<VirtualHost *:8080>
ServerAdmin foo@bar.com
DocumentRoot /var/www/html
Alias /limesurvey "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

131
examples/apache-httpd.conf Normal file
View File

@@ -0,0 +1,131 @@
ServerRoot "/usr/local/apache2"
Listen 8080
LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule watchdog_module modules/mod_watchdog.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule suexec_module modules/mod_suexec.so
<IfModule !mpm_prefork_module>
</IfModule>
<IfModule mpm_prefork_module>
</IfModule>
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
ServerAdmin you@example.com
#
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog /proc/self/fd/2
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog /proc/self/fd/1 common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule headers_module>
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
# Configure mod_proxy_html to understand HTML4/XHTML1
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
IncludeOptional conf/reverse-proxy.conf

View File

@@ -0,0 +1,8 @@
<VirtualHost *:8080>
ServerAdmin admin@localhost.local
ServerName my.survey.localhost
ProxyPass / http://limesurvey:80/
ProxyPassReverse / http://limesurvey:80/
ProxyPreserveHost On
</VirtualHost>

View File

@@ -0,0 +1,57 @@
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name _;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
index index.php;
set $host_path "/var/www/html";
root /var/www/html;
server_name _;
charset utf-8;
include /etc/nginx/mime.types;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
try_files $uri /index.php?$args;
}
location ~ ^/(protected|framework|themes/\w+/views) {
deny all;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
try_files $uri index.php;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass limesurvey:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
}

40
examples/nginx.conf Normal file
View File

@@ -0,0 +1,40 @@
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
index index.php;
set $host_path "/var/www/html";
include /etc/nginx/mime.types;
root /var/www/html;
server_name localhost;
charset utf-8;
location / {
try_files $uri /index.php?$args;
}
location ~ ^/(protected|application|framework|themes/\w+/views) {
deny all;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
try_files $uri index.php;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass limesurvey:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
# For Subdomains like https://survey.example.com
# fastcgi_param HTTP_HOST survey.example.com;
}
}
}

View File

@@ -1,40 +0,0 @@
FROM php:7.2-fpm
LABEL maintainer="markus@martialblog.de"
ARG version='3.3.1'
# Install OS dependencies
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
libldap2-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
&& apt-get autoclean; apt-get autoremove && \
rm -rf /var/lib/apt/lists/*
# Link LDAP library for PHP ldap extension
RUN ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl
# Install PHP Plugins
RUN docker-php-ext-install -j5 \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
zip
# Download, unzip and chmod of LimeSurvey
ADD "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" /tmp
RUN tar xzvf "/tmp/${version}.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm "/tmp/${version}.tar.gz" && \
chown -R www-data:www-data /var/www/html

14
nginx-certbot/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM nginx:stable
LABEL maintainer="markus@martialblog.de"
RUN set -ex; \
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
RUN chmod 700 /entrypoint.sh
CMD ["/entrypoint.sh"]

View File

@@ -0,0 +1,25 @@
#!/bin/sh
cert_path=/etc/letsencrypt/live/$(echo "$HOSTNAMES" | awk '{print $1}')
mkdir -p $cert_path
# if there is no certificate yet, get one
email="--email $CERT_EMAIL"
if [ -z "$CERT_EMAIL" ]
then
email='--register-unsafely-without-email'
fi
if [ ! -e "$cert_path/privkey.pem" ]
then
names=""
for h in $HOSTNAMES
do
names="$names -d $h"
done
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/certbot/ssl-dhparams.pem > /etc/letsencrypt/ssl-dhparams.pem
/usr/bin/certbot certonly --standalone $names --agree-tos "$email"
fi
nginx -g "daemon off;"

57
tests/apache-tests.yaml Normal file
View File

@@ -0,0 +1,57 @@
schemaVersion: "2.0.0"
globalEnvVars:
- key: "PATH"
value: "/env/bin:$PATH"
fileContentTests:
- name: 'Limesurvey admin file content'
path: '/var/www/html/admin/index.php'
expectedContents: ['LimeSurvey']
- name: 'Entrypoint file content'
path: '/usr/local/bin/entrypoint.sh'
expectedContents: ['console.php', 'ADMIN_USER']
fileExistenceTests:
- name: 'Limesurvey files'
path: '/var/www/html/index.php'
shouldExist: true
permissions: '-rw-rw-r--'
- name: 'Limesurvey admin files'
path: '/var/www/html/admin/index.php'
shouldExist: true
permissions: '-rw-rw-r--'
- name: "Dependencies - PHP - gd"
path: '/usr/local/etc/php/conf.d/docker-php-ext-gd.ini'
shouldExist: true
- name: "Dependencies - PHP - imap"
path: '/usr/local/etc/php/conf.d/docker-php-ext-imap.ini'
shouldExist: true
- name: "Dependencies - PHP - ldap"
path: '/usr/local/etc/php/conf.d/docker-php-ext-ldap.ini'
shouldExist: true
- name: "Dependencies - PHP - pgsql"
path: '/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini'
shouldExist: true
- name: "Dependencies - PHP - zip"
path: '/usr/local/etc/php/conf.d/docker-php-ext-zip.ini'
shouldExist: true
- name: "Dependencies - PHP - sodium"
path: '/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini'
shouldExist: true
- name: "Dependencies - PHP - pdo_mysql"
path: '/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini'
shouldExist: true
- name: "Dependencies - PHP - pdo_pgsql"
path: '/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini'
shouldExist: true
commandTests:
- name: "Dependencies - netcat"
command: "dpkg"
args: ["-l", "netcat"]
exitCode: 0
- name: "Dependencies - PHP Modules"
command: "php"
args: ["-m"]
expectedOutput: ["ldap", "zip", "pdo_mysql", "pdo_sqlite", "gd", "mbstring", "PDO", "imap"]

View File

@@ -0,0 +1,57 @@
schemaVersion: "2.0.0"
globalEnvVars:
- key: "PATH"
value: "/env/bin:$PATH"
fileContentTests:
- name: 'Limesurvey admin file content'
path: '/var/www/html/admin/index.php'
expectedContents: ['LimeSurvey']
- name: 'Entrypoint file content'
path: '/usr/local/bin/entrypoint.sh'
expectedContents: ['console.php', 'ADMIN_USER']
fileExistenceTests:
- name: 'Limesurvey files'
path: '/var/www/html/index.php'
shouldExist: true
permissions: '-rw-rw-r--'
- name: 'Limesurvey admin files'
path: '/var/www/html/admin/index.php'
shouldExist: true
permissions: '-rw-rw-r--'
- name: "Dependencies - PHP - gd"
path: '/usr/local/etc/php/conf.d/docker-php-ext-gd.ini'
shouldExist: true
- name: "Dependencies - PHP - imap"
path: '/usr/local/etc/php/conf.d/docker-php-ext-imap.ini'
shouldExist: true
- name: "Dependencies - PHP - ldap"
path: '/usr/local/etc/php/conf.d/docker-php-ext-ldap.ini'
shouldExist: true
- name: "Dependencies - PHP - pgsql"
path: '/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini'
shouldExist: true
- name: "Dependencies - PHP - zip"
path: '/usr/local/etc/php/conf.d/docker-php-ext-zip.ini'
shouldExist: true
- name: "Dependencies - PHP - sodium"
path: '/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini'
shouldExist: true
- name: "Dependencies - PHP - pdo_mysql"
path: '/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini'
shouldExist: true
- name: "Dependencies - PHP - pdo_pgsql"
path: '/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini'
shouldExist: true
commandTests:
- name: "Dependencies - netcat"
command: "apk"
args: ["info", "-e", "netcat-openbsd"]
exitCode: 0
- name: "Dependencies - PHP Modules"
command: "php"
args: ["-m"]
expectedOutput: ["ldap", "zip", "pdo_mysql", "pdo_sqlite", "gd", "mbstring", "PDO", "imap"]

1
tests/fpm-tests.yaml Symbolic link
View File

@@ -0,0 +1 @@
apache-tests.yaml

38
upgrade.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Upgrade script
set -x
if [ $# -eq 0 ]
then
echo 'Pass new LimeSurvey Version tag:'
echo '> upgrade.sh 3.15.8+190130'
exit 1
fi
NEW_VERSION=$1
MAJOR_VERSION="${NEW_VERSION%%.*}.0"
NEW_TAG="${NEW_VERSION%+*}-${NEW_VERSION#*+}"
grep -qc "$NEW_VERSION" "$MAJOR_VERSION/apache/Dockerfile" "$MAJOR_VERSION/fpm/Dockerfile" "$MAJOR_VERSION/fpm-alpine/Dockerfile"
GREP_NEW_VERSION_EXIT_CODE=$?
if [ $GREP_NEW_VERSION_EXIT_CODE -eq 0 ]
then
echo "Already at version ${NEW_VERSION}"
exit 0
fi
# Download, unzip and chmod LimeSurvey from official GitHub repository
wget -P /tmp "https://github.com/LimeSurvey/LimeSurvey/archive/${NEW_VERSION}.tar.gz"
SHA256_CHECKSUM=$(sha256sum "/tmp/${NEW_VERSION}.tar.gz" | awk '{ print $1 }')
# Update lines in the files
sed -r -i -e "s/[0-9]+(\.[0-9]+)+\+[0-9]+/$NEW_VERSION/" "$MAJOR_VERSION/apache/Dockerfile" "$MAJOR_VERSION/fpm/Dockerfile" "$MAJOR_VERSION/fpm-alpine/Dockerfile"
sed -r -i -e "s/[A-Fa-f0-9]{64}/$SHA256_CHECKSUM/" "$MAJOR_VERSION/apache/Dockerfile" "$MAJOR_VERSION/fpm/Dockerfile" "$MAJOR_VERSION/fpm-alpine/Dockerfile"
# After that, check and commit
echo "git add 5.0 ; git commit -m 'Upgrading to LTS Version ${NEW_VERSION}' && git tag ${NEW_TAG}"
echo "git add 6.0 ; git commit -m 'Upgrading to Version ${NEW_VERSION}' && git tag ${NEW_TAG}"