Compare commits

...

257 Commits

Author SHA1 Message Date
Markus Opolka
c40d1b648d Upgrading to LTS Version 5.6.37+230905 2023-09-18 17:06:51 +02:00
Markus Opolka
bd14d877e5 Merge pull request #164 from martialblog/renovate/docker-build-push-action-5.x
Update docker/build-push-action action to v5
2023-09-12 19:52:00 +02:00
Markus Opolka
5c95e13179 Merge pull request #168 from martialblog/renovate/docker-setup-qemu-action-3.x
Update docker/setup-qemu-action action to v3
2023-09-12 19:51:39 +02:00
Markus Opolka
0e35341b7c Merge pull request #166 from martialblog/renovate/docker-metadata-action-5.x
Update docker/metadata-action action to v5
2023-09-12 16:59:23 +02:00
renovate[bot]
469ca15cb5 Update docker/setup-qemu-action action to v3 2023-09-12 14:59:17 +00:00
Markus Opolka
4f8ea7c4f1 Merge pull request #167 from martialblog/renovate/docker-setup-buildx-action-3.x
Update docker/setup-buildx-action action to v3
2023-09-12 16:58:51 +02:00
renovate[bot]
9c19d78e26 Update docker/setup-buildx-action action to v3 2023-09-12 13:50:46 +00:00
renovate[bot]
30cd0c51cc Update docker/metadata-action action to v5 2023-09-12 13:50:40 +00:00
Markus Opolka
538f9837df Merge pull request #165 from martialblog/renovate/docker-login-action-3.x
Update docker/login-action action to v3
2023-09-12 15:50:14 +02:00
renovate[bot]
8de96875af Update docker/login-action action to v3 2023-09-12 11:28:46 +00:00
renovate[bot]
adbecadb0e Update docker/build-push-action action to v5 2023-09-12 11:28:42 +00:00
Markus Opolka
d6270a9cad Merge pull request #163 from MarkErik/patch-2
doc/credentials
2023-09-06 16:26:06 +02:00
Mark
265b375fc1 Update README.md
Added paragraph listing the credentials used in example docker-compose files, with warning to change if use for anything beyond testing.

Edited Description for ADMIN_USER and ADMIN_NAME to clarify which parameters are used for signing into the admin panel. (Previously ADMIN_NAME's description included the word username, which is confusing as it is not the username used to sign into the admin panel)
2023-09-06 09:57:44 -04:00
Mark
9135f556f5 Update README.md
Fixing previous commit due to forgetting how to format and use Markdown!
2023-09-05 13:28:06 -04:00
Mark
8ec394c7af Update README.md
Save some time for people who want to test out LimeSurvey using the sample docker-compose files so that they don't need to go poking around the different files to find the example credentials used.
2023-09-05 13:15:06 -04:00
Markus Opolka
acfd7b529d Merge pull request #160 from martialblog/renovate/actions-checkout-4.x
Update actions/checkout action to v4
2023-09-05 09:36:55 +02:00
Markus Opolka
537c1e5313 Merge pull request #162 from martialblog/fix/urls
Update Download URLs
2023-09-05 09:36:44 +02:00
Markus Opolka
1c108c70df Fix URLs for Latest version 2023-09-05 09:23:38 +02:00
Markus Opolka
42e521a759 Fix URLs for LTS version 2023-09-05 09:11:46 +02:00
renovate[bot]
432b17d255 Update actions/checkout action to v4 2023-09-04 12:29:50 +00:00
Markus Opolka
215d95e43c Upgrading to Version 6.2.5+230828 2023-09-04 14:18:36 +02:00
Markus Opolka
03804c3b28 Upgrading to LTS Version 5.6.36+230830 2023-09-04 14:09:07 +02:00
Markus Opolka
0639806b11 Upgrading to Version 6.2.4+230825 2023-08-29 10:08:47 +02:00
Markus Opolka
5ad9f7debc Upgrading to LTS Version 5.6.35+230822 2023-08-29 10:08:22 +02:00
Markus Opolka
fb42a5ab24 Upgrading to Version 6.2.3+230821 2023-08-25 07:59:37 +02:00
Markus Opolka
7f0ad78dff Upgrading to Version 6.2.2+230814 2023-08-22 08:36:30 +02:00
Markus Opolka
46ce93f6a1 Upgrading to LTS Version 5.6.34+230816 2023-08-22 08:35:38 +02:00
Markus Opolka
888b04c584 Upgrading to Version 6.2.1+230807 2023-08-15 09:01:10 +02:00
Markus Opolka
340d96e0cd Upgrading to LTS Version 5.6.33+230808 2023-08-15 09:00:38 +02:00
Markus Opolka
7289e1b639 Upgrading to Version 6.2.0+230732 2023-08-08 10:26:03 +02:00
Markus Opolka
352fe09010 Upgrading to LTS Version 5.6.32+230731 2023-08-08 10:25:33 +02:00
Markus Opolka
1bcf07c1c3 Upgrading to Version 6.1.8+230717 2023-08-01 09:21:35 +02:00
Markus Opolka
8b7d3f1beb Upgrading to LTS Version 5.6.31+230718 2023-08-01 09:21:09 +02:00
Markus Opolka
dfa75801ca Upgrading to Version 6.1.7+230710 2023-07-21 05:43:37 +02:00
Markus Opolka
29f016d75d Upgrading to LTS Version 5.6.30+230711 2023-07-21 05:43:12 +02:00
Markus Opolka
b476026121 Upgrading to Version 6.1.6+230703 2023-07-11 08:33:47 +02:00
Markus Opolka
200585ed62 Upgrading to LTS Version 5.6.29+230704 2023-07-11 08:31:17 +02:00
Markus Opolka
b281762fd1 Merge pull request #156 from martialblog/feature/file-env
Add support for secrets in files
2023-07-11 08:29:36 +02:00
Markus Opolka
ecb0c6b188 Merge pull request #158 from martialblog/feature/ldapslibs
Add OS libraries for ldaps
2023-07-11 08:29:11 +02:00
Markus Opolka
6b109ed5bb Add OS libraries for ldaps 2023-07-09 12:09:45 +02:00
Markus Opolka
eca133264d Upgrading to Version 6.1.5+230626 2023-07-04 08:56:03 +02:00
Markus Opolka
98f042dea9 Upgrading to LTS Version 5.6.28+230627 2023-07-04 08:55:36 +02:00
Markus Opolka
749137e69c Add support for secrets in files 2023-06-28 17:11:56 +02:00
Markus Opolka
56238f9aa7 Upgrading to Version 6.1.4+230620 2023-06-28 16:41:31 +02:00
Markus Opolka
0cda131e2c Upgrading to LTS Version 5.6.27+230621 2023-06-28 16:41:00 +02:00
Markus Opolka
9ad9054c3a Merge pull request #155 from martialblog/fix/nc-pkg-name
Fix netcat package name
2023-06-28 16:40:04 +02:00
Markus Opolka
b0eabe4f28 Downgrade to PHP 8.0
- There were issues with PHP extensions not being installed
2023-06-28 16:38:45 +02:00
Markus Opolka
dfefb689e8 Fix netcat package name 2023-06-28 16:38:43 +02:00
Markus Opolka
1ab5496e40 Upgrading to LTS Version 5.6.26+230613 2023-06-22 08:28:45 +02:00
Markus Opolka
ab67bbc8c6 Upgrading to Version 6.1.2+230606 2023-06-13 12:23:46 +02:00
Markus Opolka
9ea27fd9fe Upgrading to LTS Version 5.6.25+230605 2023-06-13 12:23:18 +02:00
Markus Opolka
4be9f37601 Upgrading to Version 6.1.1+230530 2023-06-09 13:35:14 +02:00
Markus Opolka
45f5178e3b Upgrading to LTS Version 5.6.24+230531 2023-06-09 13:34:41 +02:00
Markus Opolka
f772b7a05f Upgrading to Version 3.28.59+230517 2023-06-09 13:34:16 +02:00
Markus Opolka
5c8cd4570a Update structure tests 2023-06-09 13:27:50 +02:00
Markus Opolka
66f433e1d0 Fix linting issues 2023-06-09 13:18:56 +02:00
J0WI
52ee67675a Drop build dependencies from Debian variant (#153) 2023-06-09 13:14:20 +02:00
Markus Opolka
6d3bc51ebc Fix linting issues in alpine Dockerfiles 2023-06-09 12:19:04 +02:00
J0WI
0c28e5bbf9 Drop build dependencies from Alpine variant (#152) 2023-06-09 12:03:35 +02:00
Markus Opolka
23e6fa6f88 Upgrading to Version 6.0.7+230515 2023-05-24 08:45:36 +02:00
Markus Opolka
4e30695b0b Upgrading to LTS Version 5.6.21+230518 2023-05-24 08:44:50 +02:00
Markus Opolka
f290fc7f1c Upgrading to Version 6.0.6+230508 2023-05-19 09:03:27 +02:00
Markus Opolka
20c1fafdf6 Upgrading to LTS Version 5.6.20+230516 2023-05-19 09:03:02 +02:00
Markus Opolka
281cc199aa Upgrading to Version 6.0.5+230502 2023-05-09 08:36:05 +02:00
Markus Opolka
d15b0a2693 Upgrading to LTS Version 5.6.18+230503 2023-05-09 08:35:37 +02:00
Markus Opolka
164767fe97 Upgrading to Version 6.0.4+230427 2023-05-03 20:17:42 +02:00
Markus Opolka
0478c67f4a Upgrading to LTS Version 5.6.17+230426 2023-05-03 20:17:05 +02:00
Markus Opolka
07fea8dfcc Upgrading to Version 6.0.2+230417 2023-04-25 10:06:46 +02:00
Markus Opolka
4250f57653 Upgrading to LTS Version 5.6.16+230418 2023-04-25 10:06:20 +02:00
Markus Opolka
919627c293 Upgrading to Version 3.28.56+230404 2023-04-25 09:56:02 +02:00
Markus Opolka
964ed7b38e Fix LTS platform build (#150) 2023-04-21 08:22:03 +02:00
Markus Opolka
9b1ee53a4a Upgrading to LTS Version 5.6.15+230412 2023-04-20 08:23:23 +02:00
Markus Opolka
d3c5ed4e35 Fix hadolint Action config 2023-04-18 15:12:00 +02:00
Markus Opolka
b1b32c2380 Upgrading to Version 6.0.1+230411 2023-04-18 09:37:50 +02:00
renovate[bot]
f79d1e3a9d Update hadolint/hadolint-action action to v3 (#147)
* Update hadolint/hadolint-action action to v3

---------

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

---------

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Markus Opolka <markus@martialblog.de>
2023-04-13 08:07:09 +02:00
Markus Opolka
b9627cda92 Merge pull request #141 from martialblog/chore/update-gh-actions
Update GitHub Actions
2023-04-12 13:05:19 +02:00
Markus Opolka
0d5d7e6e4d Update GitHub Actions 2023-04-12 13:00:38 +02:00
Markus Opolka
eb3f48b0dc Merge pull request #139 from martialblog/release-6
Update Repository for new 6.0 Release
2023-04-12 11:40:39 +02:00
Markus Opolka
2f82a36dc0 Move GitHub Actions for ARM for separate file
- We will include these long running jobs only on special branches
2023-04-12 11:37:36 +02:00
Markus Opolka
128e7b4595 Update GitHub Action versions
- Mainly due to Node 12 deprecation
2023-04-12 11:06:12 +02:00
Markus Opolka
663bf2f03b Add ARM build in GitHub Actions
- Hint: Tried to use the plattform parameter of the build-push-action,
   however this failed with an error in the Jobs.
   Therefore, I used a matrix with the platforms.
 - The ARM build takes a long time.
2023-04-12 10:57:51 +02:00
Markus Opolka
0732424f79 Update Repository for new 6.0 Release 2023-04-12 10:54:54 +02:00
Markus Opolka
1c709f7780 Upgrading to Version 5.6.14+230403 2023-04-05 14:29:53 +02:00
Markus Opolka
b4ec3009b6 Upgrading to LTS Version 3.28.55+230328 2023-04-05 14:29:27 +02:00
Markus Opolka
5150ab73cf Upgrading to Version 5.6.12+230327 2023-03-29 18:50:47 +02:00
Markus Opolka
2bf13290c7 Upgrading to LTS Version 3.28.54+230321 2023-03-29 18:48:39 +02:00
Markus Opolka
6014fc72df Upgrading to Version 5.6.10+230313 2023-03-21 14:32:35 +01:00
Markus Opolka
25ab1cb849 Upgrading to LTS Version 3.28.53+230314 2023-03-21 14:31:33 +01:00
Markus Opolka
d777bfc285 Updat nginx.conf example 2023-03-20 15:01:06 +01:00
Markus Opolka
2498c148e3 Merge pull request #137 from martialblog/docs/apache-proxy
Add docker-compose example with Apache reverse-proxy
2023-03-16 16:28:48 +01:00
Markus Opolka
c1e931ee8f Update Traefik Examples
Acked-by: Markus Opolka <markus.opolka@netways.de>
2023-03-16 16:23:31 +01:00
Markus Opolka
e694afe33e Add docker-compose example with Apache reverse-proxy 2023-03-16 15:34:59 +01:00
Markus Opolka
8ecd8012c5 Upgrading to Version 5.6.9+230306 2023-03-14 08:34:42 +01:00
Markus Opolka
e3671f0dc2 Upgrading to LTS Version 3.28.52+230307 2023-03-14 08:34:13 +01:00
Markus Opolka
8d77a697df Upgrading to Version 5.6.8+230227 2023-03-06 20:00:13 +01:00
Markus Opolka
8e78295423 Upgrading to LTS Version 3.28.51+230228 2023-03-06 19:59:33 +01:00
Markus Opolka
1bbcede235 Upgrading to Version 5.6.7+230222 2023-03-01 08:38:59 +01:00
Markus Opolka
2fb47a0151 Upgrading to LTS Version 3.28.50+230221 2023-03-01 08:38:27 +01:00
Markus Opolka
827fb0f6e0 Upgrading to Version 5.6.6+230220 2023-02-21 17:10:43 +01:00
Markus Opolka
32bd800846 Upgrading to LTS Version 3.28.49+230215 2023-02-21 17:10:18 +01:00
Markus Opolka
6709d9964f Upgrading to Version 5.6.4+230206 2023-02-14 12:48:11 +01:00
Markus Opolka
24c3f9fcd2 Upgrading to LTS Version 3.28.48+230207 2023-02-14 12:47:30 +01:00
Markus Opolka
f80cd5ce70 Upgrading to Version 5.6.3+230130 2023-02-06 16:35:45 +01:00
Markus Opolka
dae147ad6f Upgrading to LTS Version 3.28.47+230131 2023-02-06 16:35:15 +01:00
Markus Opolka
ae6de116f2 Upgrading to Version 5.6.2+230125 2023-01-31 19:08:54 +01:00
Markus Opolka
8b2b966ab2 Upgrading to LTS Version 3.28.46+230124 2023-01-31 19:08:14 +01:00
Markus Opolka
b2425303f6 Upgrading to Version 5.6.1+230123 2023-01-25 08:07:46 +01:00
Markus Opolka
ccb8047f80 Upgrading to Version 5.6.0+230116 2023-01-24 09:08:00 +01:00
Markus Opolka
66b6a31821 Upgrading to LTS Version 3.28.45+230117 2023-01-24 09:07:35 +01:00
Markus Opolka
bd81c0b44a Upgrading to Version 5.5.2+230109 2023-01-16 15:04:50 +01:00
Markus Opolka
59986c3205 Upgrading to LTS Version 3.28.44+230110 2023-01-16 15:04:28 +01:00
Markus Opolka
269774947b Upgrading to Version 5.5.1+230103 2023-01-10 08:06:09 +01:00
Markus Opolka
64f001f58c Upgrading to LTS Version 3.28.43+221221 2023-01-10 08:05:37 +01:00
Markus Opolka
142839f135 Upgrading to Version 5.5.0+221219 2023-01-04 08:52:47 +01:00
Markus Opolka
74f928b609 Upgrading to Version 5.4.15+221212 2022-12-20 08:26:56 +01:00
Markus Opolka
4877b85128 Upgrading to Version 5.4.14+221205 2022-12-12 20:33:59 +01:00
Markus Opolka
908a2817fb Upgrading to LTS Version 3.28.41+221206 2022-12-12 20:33:34 +01:00
Markus Opolka
618b89cadb Upgrading to Version 5.4.13+221128 2022-12-06 12:13:48 +01:00
Markus Opolka
da706033f6 Upgrading to LTS Version 3.28.40+221129 2022-12-06 12:13:26 +01:00
Markus Opolka
ee98ccea0c Upgrading to Version 5.4.12+221121 2022-11-28 12:22:05 +01:00
Markus Opolka
e3dcead592 Upgrading to LTS Version 3.28.39+221122 2022-11-28 12:21:35 +01:00
Markus Opolka
3c7de94fdd Upgrading to Version 5.4.11+221114 2022-11-22 08:57:51 +01:00
Markus Opolka
43a2c383ff Upgrading to LTS Version 3.28.38+221115 2022-11-22 08:57:15 +01:00
Markus Opolka
19efe662d1 Upgrading to Version 5.4.10+221107 2022-11-15 13:20:29 +01:00
Markus Opolka
51f45a8513 Upgrading to LTS Version 3.28.37+221108 2022-11-15 13:19:17 +01:00
Markus Opolka
f0b55dacf9 Update README
- Added known issues section
2022-11-15 09:44:38 +01:00
Markus Opolka
d9eb6aff10 Upgrading to Version 5.4.9+221101 2022-11-08 13:20:42 +01:00
Markus Opolka
d979eb5aa4 Upgrading to LTS Version 3.28.36+221102 2022-11-08 13:20:03 +01:00
Markus Opolka
55d9b48441 Upgrading to Version 5.4.8+221024 2022-11-02 08:31:52 +01:00
Markus Opolka
c0167b9a23 Upgrading to LTS Version 3.28.35+221025 2022-11-02 08:31:28 +01:00
Markus Opolka
6cf8fba820 Upgrading to Version 5.4.7+221019 2022-10-25 08:52:08 +02:00
Markus Opolka
e6b006edfd Upgrading to LTS Version 3.28.34+221021 2022-10-25 08:51:35 +02:00
Markus Opolka
32be5d4370 Upgrading to Version 5.4.6+221018 2022-10-19 11:35:08 +02:00
Markus Opolka
e8818f58e2 Upgrading to LTS Version 3.28.33+221020 2022-10-19 11:34:16 +02:00
Markus Opolka
c7e92149ac Upgrading to Version 5.4.5+221010 2022-10-18 11:30:06 +02:00
Markus Opolka
e8d4216266 Upgrading to Version 5.4.4+221004 2022-10-10 14:44:57 +02:00
Markus Opolka
7597951edf Upgrading to LTS Version 3.28.31+221005 2022-10-10 14:43:59 +02:00
Markus Opolka
d4d89859c1 Upgrading to Version 5.4.3+220926 2022-10-04 17:15:21 +02:00
Markus Opolka
eef6c84c91 Upgrading to LTS Version 3.28.30+220927 2022-10-04 17:14:47 +02:00
Markus Opolka
3117108a47 Upgrading to Version 5.4.2+220921 2022-09-26 14:14:10 +02:00
Markus Opolka
ce612a0bb9 Upgrading to LTS Version 3.28.29+220920 2022-09-26 14:13:45 +02:00
Markus Opolka
f094489674 Upgrading to Version 5.4.1+220919 2022-09-21 08:39:27 +02:00
Markus Opolka
12a8ba2660 Merge pull request #128 from edgarrmondragon/upgrade-5.4.0+220913
Upgrading to Version 5.4.0+220913
2022-09-19 21:17:53 +02:00
Markus Opolka
f3e7c1451a Merge pull request #129 from edgarrmondragon/upgrade-3.28.28+220912
Upgrading to LTS Version 3.28.28+220912
2022-09-19 21:11:30 +02:00
Edgar Ramírez Mondragón
66b2708e41 Upgrading to LTS Version 3.28.28+220912 2022-09-19 12:53:22 -05:00
Edgar Ramírez Mondragón
5ba0746db1 Upgrading to Version 5.4.0+220913 2022-09-19 12:52:19 -05:00
Markus Opolka
38ba19ffec Update Makefile to that Container runtime is variable 2022-09-14 15:26:08 +02:00
Markus Opolka
8d54793bf6 Upgrading to Version 5.3.32+220817 2022-09-13 12:44:01 +02:00
Markus Opolka
f8122f286c Upgrading to LTS Version 3.28.27+220905 2022-09-12 16:25:02 +02:00
Markus Opolka
93c5bff4d4 Upgrading to LTS Version 3.28.26+220829 2022-09-05 12:56:51 +02:00
Markus Opolka
b76bc10938 Upgrading to LTS Version 3.28.25+220822 2022-08-30 09:27:44 +02:00
Markus Opolka
db81ee1d42 Update CONTRIBUTING.md 2022-08-25 10:01:09 +02:00
Markus Opolka
dbb996270d Merge pull request #126 from fkr/master
escape '|' so that markdown is rendered properly.
2022-08-25 09:52:32 +02:00
Felix Kronlage-Dammers
b1a85992d7 escape '|' so that markdown is rendered properly. 2022-08-25 09:43:42 +02:00
Markus Opolka
c3f547aa3c Merge pull request #125 from martialblog/fix/images-fqdn
Change Container Image Names to FQDN
2022-08-24 09:26:45 +02:00
Markus Opolka
24ed34bc01 Change Base Container Image Names to FQDN in Dockerfiles 2022-08-24 09:21:22 +02:00
Markus Opolka
77ba4fe5e7 Change Container Image Names to FQDN in docker-compose examples 2022-08-24 09:21:18 +02:00
Markus Opolka
4077b9d0c8 Upgrading to LTS Version 3.28.24+220816 2022-08-23 08:44:52 +02:00
Markus Opolka
0ce040715c Update Makefile
- Use variable for Container Runtime, defaults to podman
2022-08-23 08:43:18 +02:00
Markus Opolka
d4072def38 Upgrading to Version 5.3.31+220815 2022-08-17 16:51:31 +02:00
Markus Opolka
8cd721ab4b Upgrading to Version 5.3.30+220808 2022-08-15 15:43:23 +02:00
Markus Opolka
76ccb812a4 Upgrading to LTS Version 3.28.23+220809 2022-08-15 15:42:20 +02:00
Markus Opolka
289e07597c Upgrading to Version 5.3.29+220801 2022-08-08 14:08:15 +02:00
Markus Opolka
10b4f482ff Upgrading to LTS Version 3.28.22+220802 2022-08-08 14:07:36 +02:00
Markus Opolka
89829181a7 Upgrading to Version 5.3.28+220727 2022-08-01 11:26:41 +02:00
Markus Opolka
0fa7cc0c28 Upgrading to LTS Version 3.28.21+220726 2022-08-01 11:25:11 +02:00
Markus Opolka
da15d218b4 Upgrading to Version 5.3.27+220725 2022-07-27 19:40:10 +02:00
Markus Opolka
fe85d3caed Upgrading to Version 5.3.26+220720 2022-07-25 13:09:14 +02:00
Markus Opolka
3ae6ad9a4d Upgrading to LTS Version 3.28.20+220719 2022-07-25 13:08:33 +02:00
Markus Opolka
84bef42be8 Upgrading to Version 5.3.25+220718 2022-07-18 13:11:41 +02:00
Markus Opolka
d586d00f65 Upgrading to LTS Version 3.28.19+220712 2022-07-18 13:11:07 +02:00
Markus Opolka
1f1dc5988c Upgrading to Version 5.3.23+220705 2022-07-13 17:22:50 +02:00
Markus Opolka
d1589be66e Upgrading to LTS Version 3.28.18+220706 2022-07-13 17:21:25 +02:00
Markus Opolka
d70f6e96a2 Upgrading to Version 5.3.22+220628 2022-07-06 14:55:39 +02:00
Markus Opolka
ab4999ce35 Upgrading to LTS Version 3.28.17+220627 2022-07-06 14:54:57 +02:00
Markus Opolka
316121af13 Upgrading to Version 5.3.21+220620 2022-06-29 11:15:07 +02:00
Markus Opolka
34416fb250 Upgrading to LTS Version 3.28.16+220621 2022-06-29 11:14:26 +02:00
Markus Opolka
e640684875 Upgrading to Version 5.3.20+220615 2022-06-20 12:37:40 +02:00
Markus Opolka
e8595fbbed Upgrading to LTS Version 3.28.15+220616 2022-06-20 12:36:02 +02:00
Markus Opolka
a107e3a14f Upgrading to Version 5.3.19+220607 2022-06-17 09:06:09 +02:00
Markus Opolka
69a0febd53 Upgrading to LTS Version 3.28.14+220608 2022-06-17 09:05:00 +02:00
Edgar R. M
2a8c53273e feat: Move ARG instructions right before where they are used (#124) 2022-06-17 09:03:45 +02:00
Markus Opolka
882cc50e81 Upgrading to Version 5.3.18+220530 2022-06-07 17:42:21 +02:00
Markus Opolka
1d3081acd7 Upgrading to LTS Version 3.28.13+220531 2022-06-07 17:41:36 +02:00
Markus Opolka
0d13763a47 Remove LimeSurvey 4.0 Dockerfiles
- No longer supported, replaced by 5.0
2022-06-07 17:40:38 +02:00
Edgar R. M
7ee31a96ec Add a 'archive_url' build argument (#123)
* Use archive_url ARG to modify download URL
* Make ARG quoting consistent
2022-06-03 11:10:01 +02:00
Markus Opolka
f5da02dd55 Upgrading to Version 5.3.17+220525 2022-05-31 07:42:44 +02:00
Markus Opolka
952a15d298 Upgrading to LTS Version 3.28.12+220524 2022-05-31 07:41:52 +02:00
Markus Opolka
ce31f52f54 Upgrading to Version 5.3.16+220523 2022-05-26 09:05:21 +02:00
Markus Opolka
4d22afc2f3 Upgrading to Version 5.3.15+220519 2022-05-23 16:06:22 +02:00
Markus Opolka
2dff0b1c02 Upgrading to LTS Version 3.28.11+220517 2022-05-23 16:05:58 +02:00
Edgar Ramírez
d817d2c56d Upgrade to 5.3.13+220509 (#122) 2022-05-18 09:49:40 +02:00
Markus Opolka
26291e176b Upgrading to LTS Version 3.28.10+220510 2022-05-18 09:48:59 +02:00
Edgar Ramírez
b00c7b146a Upgrade to 5.3.12+220502 (#120)
* Upgrade to 5.3.12+220502
2022-05-10 07:34:50 +02:00
Markus Opolka
a45bcd926d Upgrading to LTS Version 3.28.9+220503 2022-05-10 07:33:33 +02:00
Markus Opolka
c1c16c5395 Upgrading to Version 5.3.11+220425 2022-05-03 07:58:48 +02:00
Markus Opolka
afbe9787e0 Upgrading to LTS Version 3.28.8+220426 2022-05-03 07:54:26 +02:00
Markus Opolka
9af1d036cc Fix sha checksum in 5.0 Dockerfiles 2022-04-27 09:52:34 +02:00
Markus Opolka
be5896458a Upgrading to Version 5.3.10+220419 2022-04-27 08:02:32 +02:00
Markus Opolka
c30fa9344c Upgrading to LTS Version 3.28.7+220420 2022-04-27 08:01:51 +02:00
Markus Opolka
7f69fae06e Upgrading to Version 5.3.9+220411 2022-04-20 07:59:52 +02:00
Markus Opolka
7d7f373632 Upgrading to LTS Version 3.28.6+220412 2022-04-20 07:59:08 +02:00
Edgar Ramírez
148231aab6 Upgrade to 5.3.8+220404 (#119) 2022-04-12 07:38:12 +02:00
Markus Opolka
a201933bf2 Upgrading to LTS Version 3.28.5+220405 2022-04-12 07:30:09 +02:00
Markus Opolka
350b07dbe9 Upgrading to Version 5.3.7+220328 2022-04-05 07:50:40 +02:00
Markus Opolka
f9f651b2be Upgrading to LTS Version 3.28.4+220329 2022-04-05 07:50:01 +02:00
Markus Opolka
8c14595423 Upgrading to Version 5.3.6+220321 2022-03-29 07:46:26 +02:00
Markus Opolka
9014e7ac6f Upgrading to LTS Version 3.28.3+220315 2022-03-29 07:45:44 +02:00
Markus Opolka
ce253c48b8 Upgrading to Version 5.3.5+220314 2022-03-25 08:00:44 +01:00
Markus Opolka
392e28405a Upgrading to Version 5.3.4+220309 2022-03-14 17:49:24 +01:00
Markus Opolka
a6c71d5d10 Upgrading to LTS Version 3.28.2+220308 2022-03-14 17:48:44 +01:00
Markus Opolka
d6093e43d2 Upgrading to Version 5.3.3+220307 2022-03-09 19:28:46 +01:00
Markus Opolka
2aa9153abc Upgrading to LTS Version 3.28.1+220229 2022-03-08 07:47:47 +01:00
Markus Opolka
027a8a4589 Upgrading to Version 5.3.1+220301 2022-03-03 07:56:43 +01:00
Markus Opolka
6dd4088f7d Upgrading to Version 5.3.1+220228 2022-03-02 08:11:19 +01:00
Markus Opolka
2c2106522b Upgrading to Version 5.3.0+220228 2022-03-01 12:51:28 +01:00
Markus Opolka
b6ad489977 Upgrading to LTS Version 3.28.1+220215 2022-03-01 12:50:46 +01:00
Markus Opolka
cb2286e6be Upgrading to Version 5.2.13+220207 2022-02-17 07:56:44 +01:00
Markus Opolka
241f855f0e Upgrading to LTS Version 3.27.35+220208 2022-02-17 07:55:57 +01:00
Markus Opolka
7ba3ad6618 Upgrading to Version 5.2.12+220131 2022-02-08 07:59:42 +01:00
Markus Opolka
e486bf1ec6 Upgrading to LTS Version 3.27.34+220132 2022-02-08 07:58:40 +01:00
Markus Opolka
dfb5b39211 Upgrading to Version 5.2.11+220124 2022-02-01 08:11:21 +01:00
Markus Opolka
16175a30ac Upgrading to LTS Version 3.27.33+220125 2022-02-01 08:09:52 +01:00
Markus Opolka
69178ec686 Upgrading to Version 5.2.10+220118 2022-01-24 14:06:58 +01:00
Markus Opolka
822a936b36 Upgrading to LTS Version 3.27.32+220119 2022-01-24 14:06:16 +01:00
Markus Opolka
99f898aedc Upgrading to Version 5.2.9+220110 2022-01-18 16:52:59 +01:00
Markus Opolka
b3bfb6f2a3 Upgrading to LTS Version 3.27.31+220104 2022-01-18 16:49:41 +01:00
Markus Opolka
f2c65ebc44 Enable :latest Tag for Apache Image (#115) 2022-01-18 14:54:17 +01:00
Jack Henschel
80a9ca9173 Merge pull request #113 from martialblog/jacksgt-patch-1
Correct path to data volume of Postgres deployment
2022-01-11 11:35:45 +01:00
Jack Henschel
cb13a177b6 Correct path to data volume of Postgres deployment
Fixes https://github.com/martialblog/docker-limesurvey/issues/112
2022-01-10 08:31:20 +01:00
Markus Opolka
70a86c2301 Upgrading to Version 5.2.7+211221 2022-01-05 10:00:39 +01:00
Markus Opolka
bcd42d3f63 Upgrading to LTS Version 3.27.30+211222 2022-01-05 09:59:14 +01:00
Markus Opolka
0dbe244a9c Upgrading to Version 5.2.6+211213 2021-12-22 09:18:51 +01:00
Markus Opolka
41520cf155 Upgrading to LTS Version 3.27.29+211214 2021-12-22 09:17:55 +01:00
Markus Opolka
4554f13f3d Upgrading to Version 5.2.5+211207 2021-12-14 13:53:27 +01:00
Markus Opolka
edea222851 Upgrading to LTS Version 3.27.28+211208 2021-12-14 13:52:25 +01:00
Markus Opolka
0e35fa6d05 Upgrading to Version 5.2.4+211129 2021-12-07 11:57:55 +01:00
Markus Opolka
0650b759c0 Upgrading to LTS Version 3.27.27+211130 2021-12-07 11:57:04 +01:00
Jérôme Rautureau
7f87925fa7 Limesurvey not compatible with 8.1 docker image (#110)
Limesurvey not compatible with 8.1 docker image yet

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

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

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

 - so that it's not served by the webserver
2021-11-25 07:56:11 +01:00
Markus Opolka
19a1a0d044 Extend example nginx.conf to include more protected paths (#103) 2021-11-25 07:55:47 +01:00
Mark
624a17b9fc Add depends_on for nginx so it waits until the limesurvey app is ready (#102)
By adding a depends_on in lime-web, it will wait for the limesurvey app to be ready to accept connections.
2021-11-24 09:30:51 +01:00
45 changed files with 1359 additions and 625 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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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,66 +31,80 @@ jobs:
contents: read
steps:
- name: 'Check out the repo'
uses: actions/checkout@v2
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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
tags: |
type=semver,pattern={{raw}},suffix=-apache
type=semver,pattern={{major}},suffix=-apache
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
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
tags: |
type=semver,pattern={{version}},suffix=-fpm
type=semver,pattern={{major}},suffix=-fpm
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm
- name: 'Build and push latest fpm container images'
uses: docker/build-push-action@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
tags: |
type=semver,pattern={{version}},suffix=-fpm-alpine
type=semver,pattern={{major}},suffix=-fpm-alpine
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm-alpine
- name: 'Build and push latest fpm-alpine container images'
uses: docker/build-push-action@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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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,66 +31,80 @@ jobs:
contents: read
steps:
- name: 'Check out the repo'
uses: actions/checkout@v2
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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
tags: |
type=semver,pattern={{raw}},suffix=-apache
type=semver,pattern={{major}},suffix=-apache
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-apache
- name: 'Build and push LTS apache container images'
uses: docker/build-push-action@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
tags: |
type=semver,pattern={{version}},suffix=-fpm
type=semver,pattern={{major}},suffix=-fpm
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm
- name: 'Build and push LTS fpm container images'
uses: docker/build-push-action@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
tags: |
type=semver,pattern={{version}},suffix=-fpm-alpine
type=semver,pattern={{major}},suffix=-fpm-alpine
type=match,pattern=(.+),group=1
type=match,pattern=^(\d+),group=1
flavor: |
latest=false
suffix=-fpm-alpine
- name: 'Build and push LTS fpm-alpine container images'
uses: docker/build-push-action@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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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

@@ -1,56 +1,70 @@
FROM php:7.4-apache
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
ARG version='3.27.25+211116'
ARG sha256_checksum='91ecfecffc3a437dbb14dec19054d64f07849fe1de00a1322699bd1f50185582'
ARG USER=root
ARG LISTEN_PORT=80
# 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
ENV LIMESURVEY_VERSION=$version
\
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; \
@@ -65,9 +79,16 @@ RUN a2enmod headers rewrite remoteip; \
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
# Download, unzip and chmod LimeSurvey from official GitHub repository
ARG version="3.28.59+230517"
ARG sha256_checksum="e048eaaf5260a8d6391609c355bb4df8c8ef0e0943b2d612d2a8414956db622a"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ARG USER=root
ARG LISTEN_PORT=80
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
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/ && \
@@ -75,8 +96,8 @@ RUN set -ex; \
chown -R www-data:www-data /var/www/html /etc/apache2
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"]

View File

@@ -1,9 +1,11 @@
FROM php:7.4-fpm-alpine
FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
ARG version='3.27.25+211116'
ARG sha256_checksum='91ecfecffc3a437dbb14dec19054d64f07849fe1de00a1322699bd1f50185582'
# 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 \
@@ -15,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 \
@@ -33,11 +34,26 @@ 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
# Download, unzip and chmod LimeSurvey from official GitHub repository
ARG version="3.28.59+230517"
ARG sha256_checksum="e048eaaf5260a8d6391609c355bb4df8c8ef0e0943b2d612d2a8414956db622a"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
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/ && \
@@ -52,6 +68,6 @@ RUN set -ex; \
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

View File

@@ -1,58 +1,79 @@
FROM php:7.4-fpm
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
ARG version='3.27.25+211116'
ARG sha256_checksum='91ecfecffc3a437dbb14dec19054d64f07849fe1de00a1322699bd1f50185582'
# 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.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 official GitHub repository
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
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/ && \
@@ -62,6 +83,6 @@ RUN set -ex; \
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

View File

@@ -1,82 +0,0 @@
FROM php:7.4-apache
LABEL maintainer="markus@martialblog.de"
ARG version='4.6.3+210518'
ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2'
ARG USER=root
ARG LISTEN_PORT=80
# Install OS dependencies
RUN set -ex; \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
\
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; \
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
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
ENV LIMESURVEY_VERSION=$version
# 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"
# Download, unzip and chmod LimeSurvey from official GitHub repository
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R www-data:www-data /var/www/html /etc/apache2
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
CMD ["apache2-foreground"]

View File

@@ -1,58 +0,0 @@
FROM php:7.4-fpm-alpine
LABEL maintainer="markus@martialblog.de"
ARG version='4.6.3+210518'
ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2'
# Install OS dependencies
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 && \
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 \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip
# Download, unzip and chmod LimeSurvey from official GitHub repository
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
\
rm -rf "/tmp/limesurvey.tar.gz" \
/var/www/html/docs \
/var/www/html/tests \
/var/www/html/*.md && \
chown -R www-data:root /var/www/ ; \
chmod -R g=u /var/www
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
CMD ["php-fpm"]

View File

@@ -1,67 +0,0 @@
FROM php:7.4-fpm
LABEL maintainer="markus@martialblog.de"
ARG version='4.6.3+210518'
ARG sha256_checksum='3c59afc13d0cf974c465c5f851cb8837117518e94031f5e3a28ba468ad734ce2'
# Install OS dependencies
RUN set -ex; \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
\
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; \
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
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
ENV LIMESURVEY_VERSION=$version
# Download, unzip and chmod LimeSurvey from official GitHub repository
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
echo "${sha256_checksum} /tmp/limesurvey.tar.gz" | sha256sum -c - && \
\
tar xzvf "/tmp/limesurvey.tar.gz" --strip-components=1 -C /var/www/html/ && \
rm -f "/tmp/limesurvey.tar.gz" && \
chown -R www-data:www-data /var/www/html
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
CMD ["php-fpm"]

View File

@@ -1,57 +1,72 @@
FROM php:8-apache
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
ARG version='5.2.2+211115'
ARG sha256_checksum='61148c6131ea99a699d95117d1b53f1ba7971c609c93353e7b6221dd13515659'
ARG USER=www-data
ARG LISTEN_PORT=8080
# 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
ENV LIMESURVEY_VERSION=$version
\
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; \
@@ -66,9 +81,16 @@ RUN a2enmod headers rewrite remoteip; \
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
# Download, unzip and chmod LimeSurvey from official GitHub repository
ARG version="5.6.37+230905"
ARG sha256_checksum="f81bb0340036603aaea4bb211bab9df5de707f30a41974df0dc9026b2d89c863"
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 "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
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/ && \
@@ -78,8 +100,8 @@ RUN set -ex; \
EXPOSE $LISTEN_PORT
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["apache2-foreground"]

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

View File

@@ -1,10 +1,16 @@
FROM php:8-fpm-alpine
FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
ARG version='5.2.2+211115'
ARG sha256_checksum='61148c6131ea99a699d95117d1b53f1ba7971c609c93353e7b6221dd13515659'
ARG USER=www-data
# 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 \
@@ -16,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 \
@@ -35,11 +39,27 @@ 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
# Download, unzip and chmod LimeSurvey from official GitHub repository
ARG version="5.6.37+230905"
ARG sha256_checksum="f81bb0340036603aaea4bb211bab9df5de707f30a41974df0dc9026b2d89c863"
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 "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
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/ && \
@@ -54,7 +74,7 @@ RUN set -ex; \
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

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

View File

@@ -1,59 +1,82 @@
FROM php:8-fpm
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
ARG version='5.2.2+211115'
ARG sha256_checksum='61148c6131ea99a699d95117d1b53f1ba7971c609c93353e7b6221dd13515659'
ARG USER=www-data
# 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.6.37+230905"
ARG sha256_checksum="f81bb0340036603aaea4bb211bab9df5de707f30a41974df0dc9026b2d89c863"
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 official GitHub repository
# Download, unzip and chmod LimeSurvey from GitHub (defaults to the official LimeSurvey/LimeSurvey repository)
RUN set -ex; \
curl -sSL "https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz" --output /tmp/limesurvey.tar.gz && \
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/ && \
@@ -63,7 +86,7 @@ RUN set -ex; \
EXPOSE 9000
WORKDIR /var/www/html
COPY entrypoint.sh entrypoint.sh
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
USER $USER
ENTRYPOINT ["/var/www/html/entrypoint.sh"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]

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
@@ -159,7 +176,7 @@ if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME $ADMIN_EMAIL"
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

107
6.0/apache/Dockerfile Normal file
View File

@@ -0,0 +1,107 @@
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Apache configuration
RUN a2enmod headers rewrite remoteip; \
{\
echo RemoteIPHeader X-Real-IP ;\
echo RemoteIPTrustedProxy 10.0.0.0/8 ;\
echo RemoteIPTrustedProxy 172.16.0.0/12 ;\
echo RemoteIPTrustedProxy 192.168.0.0/16 ;\
} > /etc/apache2/conf-available/remoteip.conf;\
a2enconf remoteip
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ARG version="6.2.5+230828"
ARG sha256_checksum="ce87447506c2c25cd0cea2e1dd38263b10e843f45a91a41cb0d37a5818d49845"
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"]

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,34 +26,38 @@ 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:-}
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:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
LISTEN_PORT=${LISTEN_PORT:-"80"}
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
@@ -92,12 +113,17 @@ return array(
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => true,
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
@@ -115,6 +141,13 @@ 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'
@@ -128,6 +161,8 @@ else
\$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

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.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apk add --no-cache \
netcat-openbsd \
libsasl \
libldap \
bash
# Install PHP Plugins
# hadolint ignore=SC2086
RUN set -ex; \
apk add --no-cache --virtual .build-deps \
freetype-dev \
libpng-dev \
libzip-dev \
libjpeg-turbo-dev \
tidyhtml-dev \
libsodium-dev \
openldap-dev \
oniguruma-dev \
imap-dev \
postgresql-dev \
; \
\
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-imap-ssl; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
apk del --no-cache --no-network .build-deps
ARG version="6.2.5+230828"
ARG sha256_checksum="ce87447506c2c25cd0cea2e1dd38263b10e843f45a91a41cb0d37a5818d49845"
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"]

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,32 +26,36 @@ 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:-}
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:-}
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'
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
@@ -85,12 +106,17 @@ return array(
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => true,
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
@@ -108,6 +134,13 @@ 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'
@@ -121,6 +154,8 @@ else
\$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

92
6.0/fpm/Dockerfile Normal file
View File

@@ -0,0 +1,92 @@
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
# Install OS dependencies
RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends \
netcat-openbsd \
libldap-common \
libsasl2-modules \
; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
# Install PHP Plugins and Configure PHP imap plugin
# hadolint ignore=SC2086
RUN set -ex; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
libldap2-dev \
libfreetype6-dev \
libjpeg-dev \
libonig-dev \
zlib1g-dev \
libc-client-dev \
libkrb5-dev \
libpng-dev \
libpq-dev \
libzip-dev \
libtidy-dev \
libsodium-dev \
; \
\
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
docker-php-ext-install -j "$(nproc)" \
exif \
gd \
imap \
ldap \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pgsql \
sodium \
tidy \
zip \
; \
\
# Reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
| sort -u \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*
ARG version="6.2.5+230828"
ARG sha256_checksum="ce87447506c2c25cd0cea2e1dd38263b10e843f45a91a41cb0d37a5818d49845"
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"]

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,32 +26,36 @@ 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:-}
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:-}
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'
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
@@ -85,12 +106,17 @@ return array(
'username' => '$DB_USERNAME',
'password' => '$DB_PASSWORD',
'charset' => '$DB_CHARSET',
'tablePrefix' => '$DB_TABLE_PREFIX',
'tablePrefix' => '${DB_TABLE_PREFIX//[[:space:]]/}',
),
//'session' => array (
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
//),
'urlManager' => array(
'urlFormat' => '$URL_FORMAT',
'rules' => array(),
'showScriptName' => true,
'showScriptName' => $SHOW_SCRIPT_NAME,
),
'request' => array(
'baseUrl' => '$BASE_URL',
@@ -108,6 +134,13 @@ 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'
@@ -121,6 +154,8 @@ else
\$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

View File

@@ -2,6 +2,15 @@
Every Pull Request is welcome.
## Branches
Choosing a proper name for a branch helps us identify its purpose and possibly find an associated bug or feature. Generally a branch name should include a topic such as `fix` or `feature` followed by a description. Branches should have only changes relevant to a specific issue.
```
git checkout -b fix/bug-in-connection
git checkout -b feature/improved-config-handling
git checkout -b doc/fix-typo
```
## Upgrading the Version
The versions in this repository should correspond to the [GitHub LimeSurvey Releases](https://github.com/LimeSurvey/LimeSurvey/releases)
@@ -12,19 +21,19 @@ To update the version, simply update ARG variables for version and corresponding
# Version from GitHub Tags
# sha256 of tar.gz from GitHub Releases
$ grep ARG 4.0/apache/Dockerfile
ARG version='4.3.13+200824'
$ grep ARG 5.0/apache/Dockerfile
ARG version='5.3.13+200824'
ARG sha256_checksum='4e9c6f20e'
```
It is best to use the upgrade shell script:
```bash
./upgrade.sh 4.3.13+200824
./upgrade.sh 5.3.13+200824
# Check if sha256 is correct
git add 4.0/ && git commit -m 'Upgrading to Version 4.3.13+200824'
git tag 4.3.13-200824
git add 5.0/ && git commit -m 'Upgrading to Version 5.3.13+200824'
git tag 5.3.13-200824
```
## Testing
@@ -50,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 @@
# .PHONY: apache fpm fpm-alpine
RUNTIME?=podman
apache-lts:
docker build --pull -t docker.io/martialblog/limesurvey:3-apache 3.0/apache
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:5-apache 5.0/apache
apache-latest:
docker build --pull -t docker.io/martialblog/limesurvey:5-apache 5.0/apache
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:6-apache 6.0/apache
fpm-alpine-lts:
docker build --pull -t docker.io/martialblog/limesurvey:3-fpm-alpine 3.0/fpm-alpine
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:5-fpm-alpine 5.0/fpm-alpine
fpm-alpine-latest:
docker build --pull -t docker.io/martialblog/limesurvey:5-fpm-alpine 5.0/fpm-alpine
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:6-fpm-alpine 6.0/fpm-alpine
fpm-lts:
docker build --pull -t docker.io/martialblog/limesurvey:3-fpm 3.0/fpm
$(RUNTIME) build --pull -t docker.io/martialblog/limesurvey:5-fpm 5.0/fpm
fpm-latest:
docker build --pull -t docker.io/martialblog/limesurvey:5-fpm 5.0/fpm
$(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,8 +85,16 @@ 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.
```
# BASE_URL = /limesurvey
"traefik.http.routers.limesurvey.rule=PathPrefix(`/limesurvey`)",
@@ -107,24 +115,36 @@ 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 |
| TABLE_SESSION | Enable table sessions (true) |
| SHOW_SCRIPT_NAME | Script name in URL (true|false). Default: true |
| SHOW_SCRIPT_NAME | Script name in URL (true\|false). Default: true |
| DEBUG | Debug level (0, 1, 2). Default: 0 |
| DEBUG_SQL | SQL Debug level (0, 1, 2). Default 0 |
| ENCRYPT_KEYPAIR | Data encryption keypair |
| ENCRYPT_PUBLIC_KEY | Data encryption public key |
| ENCRYPT_SECRET_KEY | Data encryption secret key |
| ENCRYPT_NONCE | Data encryption nonce (used in 5.0) |
| 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
@@ -141,6 +161,8 @@ http://localhost:8080/
http://localhost:8080/index.php/admin
```
Please note / warning: To sign into the admin panel in the examples, the credentials are username: *admin* password: *foobar*, however, if you are planning for any use beyond testing, it is highly recommended that you use environment variables to define a secure username and password.
# Running LimeSurvey with Helm
A Helm Chart for this Image can be used for deployments. Please refer to the Helm Repository for further details:
@@ -163,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:
@@ -183,6 +211,17 @@ drwxr-xr-x 3 82 82 4096 Jun 3 13:51 surveys
If you are using the Apache2 Images, the default port will now be **8080**. Depending on your setup the port configurations might need adjustment.
# Known Issues
## LimeSurvey behind a reverse proxy with a subdirectory
When running LimeSurvey behind a reverse proxy with a subdirectory (i.e. example.com/limesurvey), the admin area might not be displayed correctly due to a routing issue. The application will forward you to the BASE URL regardless.
This might be fixed by setting the HTTP Host Header in the reverse proxy explicitly.
See:
- https://github.com/martialblog/docker-limesurvey/issues/127
# References
- https://www.limesurvey.org/

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=secret"
- "ADMIN_PASSWORD=foobar"
- "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=secret"
- "MYSQL_ROOT_PASSWORD=secret"

View File

@@ -1,7 +1,7 @@
version: '3'
services:
limesurvey:
image: martialblog/limesurvey:latest
image: docker.io/martialblog/limesurvey:latest
restart: always
environment:
- DB_TYPE=pgsql
@@ -22,7 +22,7 @@ services:
depends_on:
- db
db:
image: postgres:10-alpine
image: docker.io/postgres:10-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql

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
@@ -33,14 +33,14 @@ services:
environment:
- "HOSTNAMES=www.example.com example.com"
certbot:
image: certbot/certbot
image: docker.io/certbot/certbot
restart: unless-stopped
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
lime-db:
image: mysql:5.7
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"

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
@@ -17,16 +17,18 @@ services:
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
lime-web:
image: nginx:alpine
image: docker.io/nginx:alpine
links:
- limesurvey
depends_on:
- limesurvey
ports:
- "8080:80"
volumes:
- ./examples/nginx.conf:/etc/nginx/nginx.conf:ro
- lime:/var/www/html
lime-db:
image: mysql:5.7
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=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
@@ -17,7 +17,7 @@ services:
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
lime-web:
image: nginx
image: docker.io/nginx
links:
- limesurvey
ports:
@@ -26,7 +26,7 @@ services:
- ./examples/nginx.conf:/etc/nginx/nginx.conf:ro
- lime:/var/www/html
lime-db:
image: mysql:5.7
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"

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
@@ -22,9 +22,9 @@ services:
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
lime-db:
image: postgres:10
image: docker.io/postgres:10
volumes:
- db-data:/var/lib/postgresql
- db-data:/var/lib/postgresql/data
environment:
- "POSTGRES_USER=limesurvey"
- "POSTGRES_DB=limesurvey"

View File

@@ -0,0 +1,42 @@
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=secret"
- "ADMIN_PASSWORD=foobar"
- "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=secret"
- "MYSQL_ROOT_PASSWORD=secret"

View File

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

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
@@ -20,7 +20,7 @@ services:
# If you require an empty table prefix, use a space as the DB_TABLE_PREFIX
# - "DB_TABLE_PREFIX= "
lime-db:
image: mysql:5.7
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"

View File

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

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

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

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

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

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}"