Compare commits

...

199 Commits

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

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

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

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

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

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

Signed-off-by: Alex Sears <me@alexsears.com>
2021-10-25 08:52:32 +02:00
Markus Opolka
d6af8e0a03 Remove trivy scan (#97)
- It's too verbose and we currently don't have time to review everyting
2021-10-18 09:47:55 +02:00
Markus Opolka
633893f9a8 Upgrading to Version 5.1.14+210927 2021-10-13 19:04:47 +02:00
Markus Opolka
3cc111f903 Upgrading to LTS Version 3.27.19+210928 2021-10-13 19:03:52 +02:00
Alex Sears
0d572c645c Update entrypoint to allow customization of MySQL engine (#96)
* Update entrypoint to allow customization of MySQL engine
* Update fpm images to customize MySQL engine
* Update README for MySQL engine values and default
2021-10-13 11:37:05 +02:00
Markus Opolka
bca073774f Upgrading to Version 5.1.13+210923 2021-09-28 08:33:24 +02:00
Markus Opolka
e580c1ef45 Upgrading to LTS Version 3.27.18+210921 2021-09-28 08:32:11 +02:00
Markus Opolka
abe42af3e2 Upgrading to Version 5.1.11+210920 2021-09-21 07:59:13 +02:00
Markus Opolka
8a8a8db556 Upgrading to LTS Version 3.27.17+210911 2021-09-21 07:58:39 +02:00
Lucas Benevides
7e3a9ad099 Include Hints to use in limesurvey 3. (#90)
This makes more clear for those who want to use the LTS version of limesurvey, that some adaptations are needed.
2021-09-15 14:04:21 +02:00
Markus Opolka
a57da625d7 Upgrading to Version 5.1.9+210912 2021-09-10 09:50:37 +02:00
Markus Opolka
87da3cea63 Upgrading to LTS Version 3.27.16+210909 2021-09-10 09:49:45 +02:00
Markus Opolka
b845a1d47f Upgrading to Version 5.1.7+210908 2021-09-08 09:19:00 +02:00
Markus Opolka
9d35a25170 Upgrading to LTS Version 3.27.15+210907 2021-09-08 09:17:34 +02:00
Markus Opolka
83b9ff0695 Upgrading to Version 5.1.5+210830 2021-09-07 10:03:09 +02:00
Markus Opolka
d12196e622 Upgrading to LTS Version 3.27.14+210831 2021-09-07 10:02:27 +02:00
Arjun Srivastava
9abf028503 Bug fixes for certbot-nginx config. (#87)
- added missing $ for variable
- removed ``"``` which lead to cert bot incorrrectly reading "-d example.com" as a whole as an argument, and throwing an error
2021-08-30 13:10:14 +02:00
Markus Opolka
b93f79bd4e Upgrading to Version 5.1.3+210817 2021-08-24 08:07:10 +02:00
Markus Opolka
cbae03e396 Upgrading to LTS Version 3.27.12+210816 2021-08-24 08:06:23 +02:00
Markus Opolka
5915942a26 Upgrading to Version 5.1.2+210813 2021-08-17 17:13:04 +02:00
Markus Opolka
57e3b84970 Upgrading to LTS Version 3.27.11+210809 2021-08-17 17:12:23 +02:00
Markus Opolka
70631e85bd Upgrading to Version 5.0.13+210804 2021-08-12 07:58:46 +02:00
Markus Opolka
452f6291c0 Upgrading to LTS Version 3.27.10+210803 2021-08-12 07:57:55 +02:00
Markus Opolka
0a8860911c Upgrading to Version 5.0.12+210729 2021-08-05 08:13:10 +02:00
Markus Opolka
1b174dafb7 Upgrading to LTS Version 3.27.9+210726 2021-08-05 08:12:14 +02:00
Markus Opolka
2c011a2de6 Upgrading to Version 5.0.11+210727 2021-07-30 07:59:57 +02:00
Markus Opolka
e63cd1ab2b Upgrading to Version 5.0.10+210723 2021-07-28 08:17:22 +02:00
Markus Opolka
2a7eebdc66 Upgrading to LTS Version 3.27.8+210721 2021-07-28 08:14:07 +02:00
Markus Opolka
52483b4656 Update Trivy config to only scan type 'os' (#85)
- since we are not in charge of the app
2021-07-27 10:20:42 +02:00
Markus Opolka
342d706142 Update README (#84) 2021-07-27 09:41:07 +02:00
Markus Opolka
da676f1998 Upgrading to Version 5.0.9+210722 2021-07-25 17:15:48 +02:00
Markus Opolka
6ecc2e30dd Upgrading to LTS Version 3.27.7+210713 2021-07-25 17:14:36 +02:00
Markus Opolka
e638fc36a0 Add Variable to Ignore User-Agent in Logs (#80)
* Set trivy scan to exit 0, until we cleanup those false positives
* Add variable to ignore logs for certain User-Agents. This allows us to have a clearer log when using regular health checks
2021-07-25 16:55:56 +02:00
Markus Opolka
bd836fd91f Merge pull request #82 from martialblog/update-contrib
Update CONTRIBUTING.md
2021-07-23 20:06:40 +02:00
Markus Opolka
d95fdafbd4 Update CONTRIBUTING.md 2021-07-23 20:01:16 +02:00
Markus Opolka
962f607a11 Merge pull request #77 from JensHeinrich/feature/shellCheck
Add suggestions from shellcheck
2021-07-23 16:16:20 +02:00
Jens Heinrich
7146b4d09e Add suggestions from shellcheck 2021-07-23 08:45:23 +02:00
Markus Opolka
dce4f4e100 Merge pull request #76 from martialblog/sessions
Add variable for setting table session
2021-07-22 16:53:06 +02:00
Markus Opolka
05ec82a41c Add variable for setting table session
- this allows LimeSurvey to scale horizontally
2021-07-22 16:32:08 +02:00
Markus Opolka
e3223f7a87 Upgrading to Version 5.0.7+210628 2021-07-15 18:45:37 +02:00
Markus Opolka
f29d671591 Upgrading to LTS Version 3.27.6+210629 2021-07-15 18:42:36 +02:00
40 changed files with 387 additions and 822 deletions

View File

@@ -49,10 +49,11 @@ jobs:
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
with:
@@ -68,8 +69,11 @@ jobs:
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
with:
@@ -85,8 +89,11 @@ jobs:
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
with:

View File

@@ -49,10 +49,11 @@ jobs:
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
with:
@@ -68,8 +69,11 @@ jobs:
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
with:
@@ -85,8 +89,11 @@ jobs:
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
with:

View File

@@ -32,18 +32,3 @@ jobs:
with:
image: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml
- name: 'Run vulnerability scanner'
uses: aquasecurity/trivy-action@master
with:
image-ref: docker.io/martialblog/limesurvey:5-${{ matrix.context }}
format: 'template'
template: '@/contrib/sarif.tpl'
output: trivy-results-5-${{ matrix.context }}.sarif
severity: 'CRITICAL,HIGH'
- name: 'Upload Trivy scan results to GitHub'
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: trivy-results-5-${{ matrix.context }}.sarif
category: "${{ matrix.context }}"

View File

@@ -32,18 +32,3 @@ jobs:
with:
image: docker.io/martialblog/limesurvey:3-${{ matrix.context }}
config: tests/${{ matrix.context }}-tests.yaml
- name: 'Run vulnerability scanner'
uses: aquasecurity/trivy-action@master
with:
image-ref: docker.io/martialblog/limesurvey:3-${{ matrix.context }}
format: 'template'
template: '@/contrib/sarif.tpl'
output: trivy-results-3-${{ matrix.context }}.sarif
severity: 'CRITICAL,HIGH'
- name: 'Upload Trivy scan results to GitHub'
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: trivy-results-3-${{ matrix.context }}.sarif
category: "${{ matrix.context }}"

View File

@@ -1,9 +1,5 @@
FROM php:7.4-apache
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
ARG version='3.27.5+210624'
ARG sha256_checksum='b534eb67521b0143f2b7f49341538e9c6946da1b2397d08bc7b75d740cd98aae'
ARG USER=root
ARG LISTEN_PORT=80
# Install OS dependencies
RUN set -ex; \
@@ -50,8 +46,6 @@ RUN set -ex; \
tidy \
zip
ENV LIMESURVEY_VERSION=$version
# Apache configuration
RUN a2enmod headers rewrite remoteip; \
{\
@@ -65,9 +59,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.47+230131"
ARG sha256_checksum="7392921f7d47df9ef8a1932b07c76d88bd0f4b478dc44c89165f1aca05fdbea3"
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,7 +76,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

@@ -19,6 +19,8 @@ ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
@@ -42,7 +44,7 @@ fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
@@ -65,7 +67,7 @@ else
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ ! -z "$DB_SOCK" ]; then
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
@@ -87,12 +89,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',
@@ -109,17 +116,25 @@ EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
if [ $? -eq 0 ]; then
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install $ADMIN_USER $ADMIN_PASSWORD $ADMIN_NAME $ADMIN_EMAIL
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

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

View File

@@ -1,7 +1,5 @@
FROM php:7.4-fpm-alpine
FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
ARG version='3.27.5+210624'
ARG sha256_checksum='b534eb67521b0143f2b7f49341538e9c6946da1b2397d08bc7b75d740cd98aae'
# Install OS dependencies
RUN set -ex; \
@@ -35,9 +33,14 @@ RUN set -ex; \
tidy \
zip
# Download, unzip and chmod LimeSurvey from official GitHub repository
ARG version="3.28.47+230131"
ARG sha256_checksum="7392921f7d47df9ef8a1932b07c76d88bd0f4b478dc44c89165f1aca05fdbea3"
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 +55,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

@@ -19,6 +19,8 @@ ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
@@ -35,7 +37,7 @@ fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
@@ -58,7 +60,7 @@ else
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ ! -z "$DB_SOCK" ]; then
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
@@ -80,12 +82,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',
@@ -102,17 +109,25 @@ EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
if [ $? -eq 0 ]; then
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install $ADMIN_USER $ADMIN_PASSWORD $ADMIN_NAME $ADMIN_EMAIL
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

@@ -1,7 +1,5 @@
FROM php:7.4-fpm
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
ARG version='3.27.5+210624'
ARG sha256_checksum='b534eb67521b0143f2b7f49341538e9c6946da1b2397d08bc7b75d740cd98aae'
# Install OS dependencies
RUN set -ex; \
@@ -48,11 +46,14 @@ RUN set -ex; \
tidy \
zip
ARG version="3.28.47+230131"
ARG sha256_checksum="7392921f7d47df9ef8a1932b07c76d88bd0f4b478dc44c89165f1aca05fdbea3"
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 +63,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

@@ -19,6 +19,8 @@ ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
BASE_URL=${BASE_URL:-}
PUBLIC_URL=${PUBLIC_URL:-}
URL_FORMAT=${URL_FORMAT:-'path'}
SHOW_SCRIPT_NAME=${SHOW_SCRIPT_NAME:-'true'}
TABLE_SESSION=${TABLE_SESSION:-}
DEBUG=${DEBUG:-0}
DEBUG_SQL=${DEBUG_SQL:-0}
@@ -35,7 +37,7 @@ fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
@@ -58,7 +60,7 @@ else
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ ! -z "$DB_SOCK" ]; then
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
@@ -80,12 +82,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',
@@ -102,17 +109,25 @@ EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if LimeSurvey database is provisioned
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
if [ $? -eq 0 ]; then
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install $ADMIN_USER $ADMIN_PASSWORD $ADMIN_NAME $ADMIN_EMAIL
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

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

View File

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

View File

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

View File

@@ -1,9 +1,5 @@
FROM php:8-apache
FROM docker.io/php:8.0-apache
LABEL maintainer="markus@martialblog.de"
ARG version='5.0.6+210625'
ARG sha256_checksum='e56227439faeb3c0a45cf0d845c415f3c2041564a668f44298d440bd917b3c8e'
ARG USER=www-data
ARG LISTEN_PORT=8080
# Install OS dependencies
RUN set -ex; \
@@ -51,8 +47,6 @@ RUN set -ex; \
tidy \
zip
ENV LIMESURVEY_VERSION=$version
# Apache configuration
RUN a2enmod headers rewrite remoteip; \
{\
@@ -66,9 +60,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.2+230125"
ARG sha256_checksum="c644e13ae0bd409deb348c6b57805ddfb701eaa74f3b80c141593150a59e1fe1"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${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,7 +79,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

@@ -10,10 +10,13 @@ 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'}
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:-}
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
@@ -24,6 +27,7 @@ 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}
@@ -47,7 +51,7 @@ fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
@@ -70,7 +74,7 @@ else
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ ! -z "$DB_SOCK" ]; then
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
@@ -92,8 +96,13 @@ 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(),
@@ -107,6 +116,7 @@ return array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
@@ -114,12 +124,19 @@ EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ ! -z "$ENCRYPT_KEYPAIR" ]; then
if [ -n "$ENCRYPT_KEYPAIR" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
@@ -127,6 +144,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
@@ -140,12 +159,14 @@ fi
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
if [ $? -eq 0 ]; then
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install $ADMIN_USER $ADMIN_PASSWORD $ADMIN_NAME $ADMIN_EMAIL
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

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

View File

@@ -1,8 +1,5 @@
FROM php:8-fpm-alpine
FROM docker.io/php:8.0-fpm-alpine
LABEL maintainer="markus@martialblog.de"
ARG version='5.0.6+210625'
ARG sha256_checksum='e56227439faeb3c0a45cf0d845c415f3c2041564a668f44298d440bd917b3c8e'
ARG USER=www-data
# Install OS dependencies
RUN set -ex; \
@@ -37,9 +34,15 @@ RUN set -ex; \
tidy \
zip
# Download, unzip and chmod LimeSurvey from official GitHub repository
ARG version="5.6.2+230125"
ARG sha256_checksum="c644e13ae0bd409deb348c6b57805ddfb701eaa74f3b80c141593150a59e1fe1"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${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 +57,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

@@ -10,10 +10,13 @@ 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'}
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:-}
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
@@ -24,6 +27,7 @@ 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}
@@ -40,7 +44,7 @@ fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
@@ -63,7 +67,7 @@ else
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ ! -z "$DB_SOCK" ]; then
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
@@ -85,8 +89,13 @@ 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(),
@@ -100,6 +109,7 @@ return array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
@@ -107,12 +117,19 @@ EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ ! -z "$ENCRYPT_KEYPAIR" ]; then
if [ -n "$ENCRYPT_KEYPAIR" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
@@ -120,6 +137,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
@@ -133,12 +152,14 @@ fi
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
if [ $? -eq 0 ]; then
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install $ADMIN_USER $ADMIN_PASSWORD $ADMIN_NAME $ADMIN_EMAIL
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

View File

@@ -1,8 +1,5 @@
FROM php:8-fpm
FROM docker.io/php:8.0-fpm
LABEL maintainer="markus@martialblog.de"
ARG version='5.0.6+210625'
ARG sha256_checksum='e56227439faeb3c0a45cf0d845c415f3c2041564a668f44298d440bd917b3c8e'
ARG USER=www-data
# Install OS dependencies
RUN set -ex; \
@@ -49,11 +46,15 @@ RUN set -ex; \
tidy \
zip
ARG version="5.6.2+230125"
ARG sha256_checksum="c644e13ae0bd409deb348c6b57805ddfb701eaa74f3b80c141593150a59e1fe1"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${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 +64,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

@@ -10,10 +10,13 @@ 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'}
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:-}
ADMIN_USER=${ADMIN_USER:-'admin'}
ADMIN_NAME=${ADMIN_NAME:-'admin'}
@@ -24,6 +27,7 @@ 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}
@@ -40,7 +44,7 @@ fi
# Check if database is available
if [ -z "$DB_SOCK" ]; then
until nc -z -v -w30 $DB_HOST $DB_PORT
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Info: Waiting for database connection..."
sleep 5
@@ -63,7 +67,7 @@ else
DB_CHARSET=${DB_CHARSET:-'utf8'}
fi
if [ ! -z "$DB_SOCK" ]; then
if [ -n "$DB_SOCK" ]; then
echo 'Info: Using unix socket'
DB_CONNECT='unix_socket'
else
@@ -85,8 +89,13 @@ 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(),
@@ -100,6 +109,7 @@ return array(
'publicurl'=>'$PUBLIC_URL',
'debug'=>$DEBUG,
'debugsql'=>$DEBUG_SQL,
'mysqlEngine' => '$DB_MYSQL_ENGINE',
)
);
@@ -107,12 +117,19 @@ EOF
fi
# Enable Table Sessions if required
if [ -n "$TABLE_SESSION" ]; then
echo 'Info: Setting Table Session'
# Remove the comments in the config
sed -i "s/\/\///g" application/config/config.php
fi
# Check if security config already provisioned
if [ -f application/config/security.php ]; then
echo 'Info: security.php already provisioned'
else
echo 'Info: Creating security.php'
if [ ! -z "$ENCRYPT_KEYPAIR" ]; then
if [ -n "$ENCRYPT_KEYPAIR" ]; then
cat <<EOF > application/config/security.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
@@ -120,6 +137,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
@@ -133,12 +152,14 @@ fi
echo 'Info: Check if database already provisioned. Nevermind the Stack trace.'
php application/commands/console.php updatedb
if [ $? -eq 0 ]; then
PHP_UPDATEDB_EXIT_CODE=$?
if [ $PHP_UPDATEDB_EXIT_CODE -eq 0 ]; then
echo 'Info: Database already provisioned'
else
echo ''
echo 'Running console.php install'
php application/commands/console.php install $ADMIN_USER $ADMIN_PASSWORD $ADMIN_NAME $ADMIN_EMAIL
php application/commands/console.php install "$ADMIN_USER" "$ADMIN_PASSWORD" "$ADMIN_NAME" "$ADMIN_EMAIL"
fi
exec "$@"

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,27 +21,41 @@ 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
In order to make sure the image works as promised, some tests are provided:
```bash
./tests/run.sh
```
In order to make sure the image works as promised, some container-structure-tests are provided. The tests require the `container-structure-test` tool to be installed.
For further information: https://github.com/GoogleContainerTools/container-structure-test
```bash
make apache-latest
container-structure-test test --image docker.io/martialblog/limesurvey:5-apache --config tests/apache-tests.yaml
```
```bash
make fpm-latest
container-structure-test test --image docker.io/martialblog/limesurvey:5-fpm-alpine --config tests/fpm-alpine-tests.yaml
```
```bash
make fpm-alpine-latest
container-structure-test test --image docker.io/martialblog/limesurvey:5-fpm --config tests/fpm-tests.yaml
```

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:3-apache 3.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:5-apache 5.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:3-fpm-alpine 3.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:5-fpm-alpine 5.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:3-fpm 3.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:5-fpm 5.0/fpm

View File

@@ -87,6 +87,8 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
## 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`)",
@@ -103,7 +105,8 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
| DB_PORT | Database server port |
| DB_SOCK | Database unix socket instead of host/port |
| DB_NAME | Database name |
| DB_TABLE_PREFIX | Database table prefix |
| DB_TABLE_PREFIX | Database table prefix; set this to a single whitespace if you don't want a table prefix. |
| DB_MYSQL_ENGINE | MySQL engine used for survey tables (values: MyISAM, InnoDB, default: MyISAM) |
| DB_USERNAME | Database user |
| DB_PASSWORD | Database user's password |
| ADMIN_USER | Initial LimeSurvey Admin User |
@@ -113,17 +116,20 @@ For further details on the settings see: https://manual.limesurvey.org/Data_encr
| PUBLIC_URL | Public URL for public scripts |
| BASE_URL | Application Base URL |
| URL_FORMAT | URL Format. path or get |
| SHOW_SCRIPT_NAME | Script name in URL (true|false). Default: true |
| TABLE_SESSION | Enable table sessions (true) |
| SHOW_SCRIPT_NAME | Script name in URL (true\|false). Default: true |
| DEBUG | Debug level (0, 1, 2). Default: 0 |
| DEBUG_SQL | SQL Debug level (0, 1, 2). Default 0 |
| ENCRYPT_KEYPAIR | Data encryption keypair |
| ENCRYPT_PUBLIC_KEY | Data encryption public key |
| ENCRYPT_SECRET_KEY | Data encryption secret key |
| ENCRYPT_NONCE | Data encryption nonce (used in 5.0) |
| ENCRYPT_SECRET_BOX_KEY | Data encryption secret box key (used in 5.0) |
| LISTEN_PORT | Apache: Listen port. Default: 8080 |
For further details on the settings see: https://manual.limesurvey.org/Optional_settings#Advanced_Path_Settings
# Running this Image with docker-compose
# Running LimeSurvey with docker-compose
The easiest way to get a fully featured and functional setup is using a docker-compose file. Several examples are provided in the [repository](https://github.com/martialblog/docker-limesurvey).
@@ -137,6 +143,12 @@ http://localhost:8080/
http://localhost:8080/index.php/admin
```
# Running LimeSurvey with Helm
A Helm Chart for this Image can be used for deployments. Please refer to the Helm Repository for further details:
https://github.com/martialblog/helm-charts
# Upgrade Guide
These guides are only referring to the Docker Image, for details on the application users should consult the [official LimeSurvey documentation](https://manual.limesurvey.org/Upgrading_from_a_previous_version) for details.
@@ -173,6 +185,15 @@ 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. See:
- https://github.com/martialblog/docker-limesurvey/issues/49
- https://github.com/martialblog/docker-limesurvey/issues/127
- https://github.com/martialblog/docker-limesurvey/issues/106
# References
- https://www.limesurvey.org/

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

@@ -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

@@ -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

@@ -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

@@ -2,6 +2,7 @@ version: "3.0"
services:
limesurvey:
build:
# Hint: Change it to 3.0/apache/ if you want to use LimeSurvey 3.*
context: 5.0/apache/
dockerfile: Dockerfile
volumes:
@@ -12,6 +13,7 @@ services:
depends_on:
- lime-db
ports:
# Hint: Change it to 80:8080 if you are using LimeSurvey 3.*
- "8080:8080"
environment:
- "DB_TYPE=pgsql"
@@ -20,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,46 @@
version: "3.0"
services:
limesurvey:
build:
context: 5.0/apache/
dockerfile: Dockerfile
labels:
traefik.enable: 'true'
traefik.http.routers.limesurvey-http-router.entrypoints: "http"
traefik.http.routers.limesurvey-http-router.rule: "PathPrefix(`/limesurvey`)"
traefik.http.services.limesurvey-service.loadbalancer.server.port: "8080"
links:
- lime-db
depends_on:
- lime-db
volumes:
# Unfortunately the StripPrefix Function in Traefik won't work;
# Meaning, we will have to set 'Alias /limesurvey "/var/www/html"' in the Apache Config
- "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro"
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
- "PUBLIC_URL=http://localhost:8888/limesurvey"
- "BASE_URL=http://localhost:8888/limesurvey"
traefik:
image: docker.io/traefik:v2.5
container_name: "traefik"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.http.address=:8888"
ports:
- "8888:8888"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
lime-db:
image: docker.io/mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"

View File

@@ -17,8 +17,10 @@ services:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
# 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

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)$ {

View File

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

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

@@ -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

@@ -11,12 +11,14 @@ if [ $# -eq 0 ]
fi
NEW_VERSION=$1
MAJOR_VERSION=$(echo $NEW_VERSION | cut -c 1 | awk '{print $1".0"}')
NEW_TAG=$(echo $NEW_VERSION | sed "s/+/-/")
MAJOR_VERSION="${NEW_VERSION%%.*}.0"
NEW_TAG="${NEW_VERSION%+*}-${NEW_VERSION#*+}"
grep -qc $NEW_VERSION $MAJOR_VERSION/apache/Dockerfile $MAJOR_VERSION/fpm/Dockerfile $MAJOR_VERSION/fpm-alpine/Dockerfile
grep -qc "$NEW_VERSION" "$MAJOR_VERSION/apache/Dockerfile" "$MAJOR_VERSION/fpm/Dockerfile" "$MAJOR_VERSION/fpm-alpine/Dockerfile"
if [ $? -eq 0 ]
GREP_NEW_VERSION_EXIT_CODE=$?
if [ $GREP_NEW_VERSION_EXIT_CODE -eq 0 ]
then
echo "Already at version ${NEW_VERSION}"
exit 0
@@ -28,8 +30,8 @@ wget -P /tmp "https://github.com/LimeSurvey/LimeSurvey/archive/${NEW_VERSION}.ta
SHA256_CHECKSUM=$(sha256sum "/tmp/${NEW_VERSION}.tar.gz" | awk '{ print $1 }')
# Update lines in the files
sed -r -i -e "s/[0-9]+(\.[0-9]+)+\+[0-9]+/$NEW_VERSION/" $MAJOR_VERSION/apache/Dockerfile $MAJOR_VERSION/fpm/Dockerfile $MAJOR_VERSION/fpm-alpine/Dockerfile
sed -r -i -e "s/[A-Fa-f0-9]{64}/$SHA256_CHECKSUM/" $MAJOR_VERSION/apache/Dockerfile $MAJOR_VERSION/fpm/Dockerfile $MAJOR_VERSION/fpm-alpine/Dockerfile
sed -r -i -e "s/[0-9]+(\.[0-9]+)+\+[0-9]+/$NEW_VERSION/" "$MAJOR_VERSION/apache/Dockerfile" "$MAJOR_VERSION/fpm/Dockerfile" "$MAJOR_VERSION/fpm-alpine/Dockerfile"
sed -r -i -e "s/[A-Fa-f0-9]{64}/$SHA256_CHECKSUM/" "$MAJOR_VERSION/apache/Dockerfile" "$MAJOR_VERSION/fpm/Dockerfile" "$MAJOR_VERSION/fpm-alpine/Dockerfile"
# After that, check and commit
echo "git add 3.0 ; git commit -m 'Upgrading to LTS Version ${NEW_VERSION}' && git tag ${NEW_TAG}"