Compare commits

...

165 Commits

Author SHA1 Message Date
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
40 changed files with 1669 additions and 360 deletions

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

@@ -2,7 +2,7 @@ name: Publish Latest Container Images
on:
push:
tags:
- '5.*'
- '6.*'
jobs:
lint_dockerfiles:
@@ -11,15 +11,15 @@ jobs:
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
steps:
- uses: actions/checkout@v2
- uses: hadolint/hadolint-action@v1.5.0
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ${{ matrix.dockerfile }}
ignore: DL4006 DL3008 DL3018
ignore: "DL4006,DL3008,DL3018"
push_images_to_registries:
name: Push Container Images to registries
@@ -31,20 +31,24 @@ jobs:
contents: read
steps:
- name: 'Check out the repo'
uses: actions/checkout@v2
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@v1
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@v1
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@v3
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
@@ -55,16 +59,17 @@ jobs:
latest=true
suffix=-apache
- name: 'Build and push latest Apache container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 5.0/apache
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@v3
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
@@ -75,16 +80,17 @@ jobs:
latest=false
suffix=-fpm
- name: 'Build and push latest fpm container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 5.0/fpm
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@v3
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
@@ -95,9 +101,10 @@ jobs:
latest=false
suffix=-fpm-alpine
- name: 'Build and push latest fpm-alpine container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 5.0/fpm-alpine
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

@@ -2,7 +2,7 @@ name: Publish LTS Container Images
on:
push:
tags:
- '3.*'
- '5.*'
jobs:
lint_dockerfiles:
@@ -11,15 +11,15 @@ jobs:
strategy:
matrix:
dockerfile:
- 3.0/apache/Dockerfile
- 3.0/fpm-alpine/Dockerfile
- 3.0/fpm/Dockerfile
- 5.0/apache/Dockerfile
- 5.0/fpm-alpine/Dockerfile
- 5.0/fpm/Dockerfile
steps:
- uses: actions/checkout@v2
- uses: hadolint/hadolint-action@v1.5.0
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ${{ matrix.dockerfile }}
ignore: DL4006 DL3008 DL3018
ignore: "DL4006,DL3008,DL3018"
push_images_to_registries:
name: 'Push container images to registries'
@@ -31,20 +31,24 @@ jobs:
contents: read
steps:
- name: 'Check out the repo'
uses: actions/checkout@v2
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@v1
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@v1
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@v3
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
@@ -55,16 +59,17 @@ jobs:
latest=false
suffix=-apache
- name: 'Build and push LTS apache container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 3.0/apache
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@v3
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
@@ -75,16 +80,17 @@ jobs:
latest=false
suffix=-fpm
- name: 'Build and push LTS fpm container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 3.0/fpm
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@v3
uses: docker/metadata-action@v5
with:
images: |
docker.io/martialblog/limesurvey
@@ -95,9 +101,10 @@ jobs:
latest=false
suffix=-fpm-alpine
- name: 'Build and push LTS fpm-alpine container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 3.0/fpm-alpine
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

View File

@@ -9,16 +9,16 @@ jobs:
strategy:
matrix:
dockerfile:
- 3.0/apache/Dockerfile
- 3.0/fpm-alpine/Dockerfile
- 3.0/fpm/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@v2
- uses: hadolint/hadolint-action@v1.5.0
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ${{ matrix.dockerfile }}
ignore: DL4006 DL3008 DL3018
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

@@ -4,7 +4,7 @@ on: [push, pull_request]
jobs:
test_images:
name: Test Latest Container Images with Trivy
name: Test Latest Container Images
runs-on: ubuntu-latest
strategy:
matrix:
@@ -14,21 +14,26 @@ jobs:
- fpm
steps:
- name: 'Check out the repo'
uses: actions/checkout@v2
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@v1
uses: docker/setup-buildx-action@v3
- name: 'Build Container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 5.0/${{ matrix.context }}
context: 6.0/${{ matrix.context }}
push: false
load: true
tags: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
tags: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
- name: 'Run Structure tests'
uses: plexsystems/container-structure-test-action@v0.2.0
uses: plexsystems/container-structure-test-action@v0.3.0
with:
image: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
image: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml

View File

@@ -4,7 +4,7 @@ on: [push, pull_request]
jobs:
test_images:
name: Test LTS Container Images with Trivy
name: Test LTS Container Images
runs-on: ubuntu-latest
strategy:
matrix:
@@ -14,21 +14,24 @@ jobs:
- fpm
steps:
- name: 'Check out the repo'
uses: actions/checkout@v2
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@v1
uses: docker/setup-buildx-action@v3
- name: 'Build Container images'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: 3.0/${{ matrix.context }}
context: 5.0/${{ matrix.context }}
push: false
load: true
tags: docker.io/martialblog/limesurvey:3-${{ matrix.context }}
tags: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
- name: 'Run Structure tests'
uses: plexsystems/container-structure-test-action@v0.2.0
uses: plexsystems/container-structure-test-action@v0.3.0
with:
image: docker.io/martialblog/limesurvey:3-${{ matrix.context }}
image: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml

View File

@@ -3,48 +3,68 @@ LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat \
; \
\
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 \
netcat \
\
&& apt-get -y autoclean; apt-get -y autoremove; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Link LDAP library for PHP ldap extension
RUN set -ex; \
ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr && \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install -j5 \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip
\
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; \
@@ -59,14 +79,14 @@ RUN a2enmod headers rewrite remoteip; \
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="3.28.40+221129"
ARG sha256_checksum="5f208f07b0861070018c3b9901782f58164b0edc5a7dd5f8c08c01c73d5347fa"
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)
# 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 - && \

View File

@@ -2,6 +2,10 @@ 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 \
@@ -13,14 +17,13 @@ RUN set -ex; \
openldap-dev \
oniguruma-dev \
imap-dev \
postgresql-dev && \
apk add --no-cache netcat-openbsd bash
# Install PHP Plugins
RUN set -ex; \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr && \
docker-php-ext-configure imap --with-imap-ssl && \
docker-php-ext-install \
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 \
@@ -31,14 +34,24 @@ RUN set -ex; \
pgsql \
sodium \
tidy \
zip
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.40+221129"
ARG sha256_checksum="5f208f07b0861070018c3b9901782f58164b0edc5a7dd5f8c08c01c73d5347fa"
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)
# 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 - && \

View File

@@ -3,55 +3,75 @@ LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat \
; \
\
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 \
netcat \
\
&& apt-get -y autoclean; apt-get -y autoremove; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Link LDAP library for PHP ldap extension
RUN set -ex; \
ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr && \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install -j5 \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip
\
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.40+221129"
ARG sha256_checksum="5f208f07b0861070018c3b9901782f58164b0edc5a7dd5f8c08c01c73d5347fa"
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)
# 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 - && \

View File

@@ -3,49 +3,70 @@ LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
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 \
netcat \
curl \
\
&& apt-get -y autoclean; apt-get -y autoremove; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Link LDAP library for PHP ldap extension
RUN set -ex; \
ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr && \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install -j5 \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip
\
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; \
@@ -60,14 +81,14 @@ RUN a2enmod headers rewrite remoteip; \
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="5.4.13+221128"
ARG sha256_checksum="71c42e2ff74a49dee9218117c71037985d86d85836a61b109839aa32c39c8832"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ARG version="5.6.51+240116"
ARG sha256_checksum="0dfd2476c34775358346997515712abeee8d165022f1500e932be6446dc12be7"
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)
# 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 - && \

View File

@@ -1,6 +1,23 @@
#!/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'}
@@ -9,19 +26,19 @@ 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:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-}
ENCRYPT_NONCE=${ENCRYPT_NONCE:-}
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-}
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'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
@@ -35,12 +52,12 @@ DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"8080"}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD'
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD'
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
@@ -136,7 +153,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -2,6 +2,15 @@ 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 \
@@ -13,14 +22,12 @@ RUN set -ex; \
openldap-dev \
oniguruma-dev \
imap-dev \
postgresql-dev && \
apk add --no-cache netcat-openbsd bash
# Install PHP Plugins
RUN set -ex; \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr && \
docker-php-ext-configure imap --with-imap-ssl && \
docker-php-ext-install \
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 \
@@ -32,15 +39,25 @@ RUN set -ex; \
pgsql \
sodium \
tidy \
zip
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.4.13+221128"
ARG sha256_checksum="71c42e2ff74a49dee9218117c71037985d86d85836a61b109839aa32c39c8832"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ARG version="5.6.51+240116"
ARG sha256_checksum="0dfd2476c34775358346997515712abeee8d165022f1500e932be6446dc12be7"
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)
# 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 - && \

View File

@@ -1,6 +1,23 @@
#!/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'}
@@ -9,19 +26,19 @@ 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:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-}
ENCRYPT_NONCE=${ENCRYPT_NONCE:-}
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-}
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'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
@@ -33,12 +50,12 @@ DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD'
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD'
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
@@ -129,7 +146,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

View File

@@ -3,56 +3,78 @@ LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
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 \
netcat \
\
&& apt-get -y autoclean; apt-get -y autoremove; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Link LDAP library for PHP ldap extension
RUN set -ex; \
ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr && \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install -j5 \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip
\
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.4.13+221128"
ARG sha256_checksum="71c42e2ff74a49dee9218117c71037985d86d85836a61b109839aa32c39c8832"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ARG version="5.6.51+240116"
ARG sha256_checksum="0dfd2476c34775358346997515712abeee8d165022f1500e932be6446dc12be7"
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)
# 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 - && \

View File

@@ -1,6 +1,23 @@
#!/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'}
@@ -9,19 +26,19 @@ 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:-}
DB_MYSQL_ENGINE=${DB_MYSQL_ENGINE:-'MyISAM'}
file_env 'DB_PASSWORD'
ENCRYPT_KEYPAIR=${ENCRYPT_KEYPAIR:-}
ENCRYPT_PUBLIC_KEY=${ENCRYPT_PUBLIC_KEY:-}
ENCRYPT_SECRET_KEY=${ENCRYPT_SECRET_KEY:-}
ENCRYPT_NONCE=${ENCRYPT_NONCE:-}
ENCRYPT_SECRET_BOX_KEY=${ENCRYPT_SECRET_BOX_KEY:-}
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'}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
file_env 'ADMIN_PASSWORD'
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
@@ -33,12 +50,12 @@ DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
if [ -z "$DB_PASSWORD" ]; then
echo >&2 'Error: Missing DB_PASSWORD'
echo >&2 'Error: Missing DB_PASSWORD or DB_PASSWORD_FILE'
exit 1
fi
if [ -z "$ADMIN_PASSWORD" ]; then
echo >&2 'Error: Missing ADMIN_PASSWORD'
echo >&2 'Error: Missing ADMIN_PASSWORD or ADMIN_PASSWORD_FILE'
exit 1
fi
@@ -129,7 +146,7 @@ if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ -n "$ENCRYPT_KEYPAIR" ]; then
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

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.1+240108"
ARG sha256_checksum="5ac2ecae91f5890118bbb7a6c2a605e5a53099f331515db29323c21e80b4254a"
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.1+240108"
ARG sha256_checksum="5ac2ecae91f5890118bbb7a6c2a605e5a53099f331515db29323c21e80b4254a"
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.1+240108"
ARG sha256_checksum="5ac2ecae91f5890118bbb7a6c2a605e5a53099f331515db29323c21e80b4254a"
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 "$@"

View File

@@ -59,3 +59,9 @@ 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.

View File

@@ -1,14 +1,14 @@
RUNTIME?=podman
apache-lts:
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:3-apache 3.0/apache
apache-latest:
$(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:3-fpm-alpine 3.0/fpm-alpine
fpm-alpine-latest:
$(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:3-fpm 3.0/fpm
fpm-latest:
$(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

View File

@@ -14,12 +14,12 @@ Dockerfile to build a [LimeSurvey](https://limesurvey.org) Image for the Docker
## 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)
- [`3-apache`, `3.<BUILD-NUMBER>-apache`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/apache/Dockerfile)
- [`3-fpm`, `3.<BUILD-NUMBER>-fpm`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/fpm/Dockerfile)
- [`3-fpm-alpine`, `3.<BUILD-NUMBER>-fpm-alpine`](https://github.com/martialblog/docker-limesurvey/blob/master/3.0/fpm-alpine/Dockerfile)
# Using the Apache Image
@@ -85,6 +85,12 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
# 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.
@@ -109,10 +115,10 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
| 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 User |
| ADMIN_NAME | Initial LimeSurvey Admin Username |
| 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 |
| 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 |
@@ -123,16 +129,30 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
| 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) |
| ENCRYPT_SECRET_BOX_KEY | Data encryption secret box key (used in 5.0) |
| 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
@@ -165,6 +185,12 @@ 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:
@@ -189,10 +215,12 @@ If you are using the Apache2 Images, the default port will now be **8080**. Depe
## 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. See:
- https://github.com/martialblog/docker-limesurvey/issues/49
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
- https://github.com/martialblog/docker-limesurvey/issues/106
# References

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

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

View File

@@ -2,7 +2,7 @@ version: "3.0"
services:
limesurvey:
build:
context: 5.0/fpm/
context: 6.0/fpm/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
@@ -14,9 +14,9 @@ services:
- lime-db
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
lime-web:
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-web:
build:
context: nginx-certbot/
dockerfile: Dockerfile
@@ -44,7 +44,7 @@ services:
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="
volumes:
lime:

View File

@@ -2,7 +2,7 @@ version: "3.0"
services:
limesurvey:
build:
context: 5.0/fpm-alpine/
context: 6.0/fpm-alpine/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
@@ -14,8 +14,8 @@ services:
- lime-db
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-web:
image: docker.io/nginx:alpine
links:
@@ -32,7 +32,7 @@ services:
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="
volumes:
lime:

View File

@@ -2,7 +2,7 @@ version: "3.0"
services:
limesurvey:
build:
context: 5.0/fpm/
context: 6.0/fpm/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
@@ -14,8 +14,8 @@ services:
- lime-db
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-web:
image: docker.io/nginx
links:
@@ -30,7 +30,7 @@ services:
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="
volumes:
lime:

View File

@@ -3,7 +3,7 @@ services:
limesurvey:
build:
# Hint: Change it to 3.0/apache/ if you want to use LimeSurvey 3.*
context: 5.0/apache/
context: 6.0/apache/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
@@ -19,8 +19,8 @@ services:
- "DB_TYPE=pgsql"
- "DB_PORT=5432"
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
lime-db:
image: docker.io/postgres:10
volumes:
@@ -28,7 +28,7 @@ services:
environment:
- "POSTGRES_USER=limesurvey"
- "POSTGRES_DB=limesurvey"
- "POSTGRES_PASSWORD=secret"
# - "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

@@ -2,7 +2,7 @@ version: "3.0"
services:
limesurvey:
build:
context: 5.0/apache/
context: 6.0/apache/
dockerfile: Dockerfile
labels:
traefik.enable: 'true'
@@ -19,12 +19,12 @@ services:
- "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro"
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
- "PUBLIC_URL=http://localhost:8888/limesurvey"
- "BASE_URL=http://localhost:8888/limesurvey"
traefik:
image: docker.io/traefik:v2.5
image: docker.io/traefik:v2.9
container_name: "traefik"
command:
- "--api.insecure=true"
@@ -41,6 +41,5 @@ services:
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="

View File

@@ -2,7 +2,7 @@ version: "3.0"
services:
limesurvey:
build:
context: 5.0/apache/
context: 6.0/apache/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
@@ -15,8 +15,8 @@ services:
- "8080:8080"
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
# - "DB_PASSWORD="
# - "ADMIN_PASSWORD="
# If you require an empty table prefix, use a space as the DB_TABLE_PREFIX
# - "DB_TABLE_PREFIX= "
lime-db:
@@ -24,5 +24,5 @@ services:
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
# - "MYSQL_PASSWORD="
# - "MYSQL_ROOT_PASSWORD="

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

@@ -33,6 +33,8 @@ http {
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

@@ -21,9 +21,6 @@ fileExistenceTests:
path: '/var/www/html/admin/index.php'
shouldExist: true
permissions: '-rw-rw-r--'
- name: 'Ldap syslink'
path: '/usr/lib/x86_64-linux-gnu/libldap.so'
shouldExist: true
- name: "Dependencies - PHP - gd"
path: '/usr/local/etc/php/conf.d/docker-php-ext-gd.ini'
shouldExist: true
@@ -54,30 +51,6 @@ commandTests:
command: "dpkg"
args: ["-l", "netcat"]
exitCode: 0
- name: "Dependencies - libldap2-dev"
command: "dpkg"
args: ["-l", "libldap2-dev"]
exitCode: 0
- name: "Dependencies - zlib1g-dev"
command: "dpkg"
args: ["-l", "zlib1g-dev"]
exitCode: 0
- name: "Dependencies - libc-client-dev"
command: "dpkg"
args: ["-l", "libc-client-dev"]
exitCode: 0
- name: "Dependencies - libkrb5-dev"
command: "dpkg"
args: ["-l", "libkrb5-dev"]
exitCode: 0
- name: "Dependencies - libpng-dev"
command: "dpkg"
args: ["-l", "libpng-dev"]
exitCode: 0
- name: "Dependencies - libpq-dev"
command: "dpkg"
args: ["-l", "libpq-dev"]
exitCode: 0
- name: "Dependencies - PHP Modules"
command: "php"
args: ["-m"]

View File

@@ -34,5 +34,5 @@ sed -r -i -e "s/[0-9]+(\.[0-9]+)+\+[0-9]+/$NEW_VERSION/" "$MAJOR_VERSION/apache/
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 3.0 ; git commit -m 'Upgrading to LTS Version ${NEW_VERSION}' && git tag ${NEW_TAG}"
echo "git add 5.0 ; git commit -m 'Upgrading to Version ${NEW_VERSION}' && git tag ${NEW_TAG}"
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}"