forked from erseco/alpine-moodle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
110 lines (98 loc) · 4.49 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
ARG ARCH=quay.io/
FROM ${ARCH}jimsihk/alpine-php-nginx:83.17.2
LABEL Description="Lightweight Moodle container with NGINX & PHP-FPM based on Alpine Linux." \
Maintainer="[email protected]"
# renovate: datasource=repology depName=alpine_3_21/dcron versioning=loose
ARG DCRON_VERSION="=4.6-r0"
# renovate: datasource=repology depName=alpine_3_21/libcap versioning=loose
ARG LIBCAP_VERSION="=2.71-r0"
# renovate: datasource=repology depName=alpine_3_21/git versioning=loose
ARG GIT_VERSION="=2.47.2-r0"
# renovate: datasource=repology depName=alpine_3_21/bash versioning=loose
ARG BASH_VERSION="=5.2.37-r0"
ARG ARG_WEB_PATH='/var/www/html'
ENV WEB_PATH=${ARG_WEB_PATH}
# controls whether the remaining steps should use git clone or simply download from git repo
ARG ARG_ENABLE_GIT_CLONE='true'
ENV ENABLE_GIT_CLONE=${ARG_ENABLE_GIT_CLONE}
USER root
COPY --chown=nobody rootfs/ /
# crond needs root, so install dcron and cap package and set the capabilities
# on dcron binary https://github.com/inter169/systs/blob/master/alpine/crond/README.md
RUN apk add --no-cache \
dcron${DCRON_VERSION} \
libcap${LIBCAP_VERSION} \
bash${BASH_VERSION} \
&& if [ "${ENABLE_GIT_CLONE}" = 'true' ]; then apk add --no-cache git${GIT_VERSION}; fi \
&& chown nobody:nobody /usr/sbin/crond \
&& setcap cap_setgid=ep /usr/sbin/crond \
# Clean up unused files from base image
&& if [ -f "${WEB_PATH}/index.php" ]; then rm ${WEB_PATH}/index.php; fi \
&& if [ -f "${WEB_PATH}/test.html" ]; then rm ${WEB_PATH}/test.html; fi
USER nobody
# Change MOODLE_XX_STABLE for new versions
ARG ARG_MOODLE_GIT_URL='https://github.com/moodle/moodle.git'
ARG ARG_MODOLE_GIT_BRANCH='MOODLE_405_STABLE'
# renovate: datasource=git-refs depName=https://github.com/moodle/moodle branch=MOODLE_405_STABLE
ARG ARG_MODOLE_GIT_COMMIT='ae31be1e34b8c6f3cb02784eb05a2f6b23413d49'
ENV MOODLE_GIT_URL=${ARG_MOODLE_GIT_URL} \
MODOLE_GIT_BRANCH=${ARG_MODOLE_GIT_BRANCH} \
MOODLE_GIT_COMMIT=${ARG_MODOLE_GIT_COMMIT} \
LANG=en_US.UTF-8 \
LANGUAGE=en_US:en \
SITE_URL=http://localhost \
DB_TYPE=pgsql \
DB_HOST=postgres \
DB_PORT=5432 \
DB_NAME=moodle \
DB_USER=moodle \
DB_PASS=moodle \
DB_PREFIX=mdl_ \
DB_DBHANDLEOPTIONS=false \
SSLPROXY=false \
MOODLE_LANGUAGE=en \
MOODLE_SITENAME=New-Site \
MOODLE_SHORTNAME=moodle \
MOODLE_USERNAME=moodleuser \
MOODLE_PASSWORD=PLEASE_CHANGEME \
SMTP_HOST=smtp.gmail.com \
SMTP_PORT=587 \
SMTP_PASSWORD=your_password \
SMTP_PROTOCOL=tls \
MOODLE_MAIL_NOREPLY_ADDRESS=noreply@localhost \
MOODLE_MAIL_PREFIX=[moodle] \
client_max_body_size=50M \
post_max_size=50M \
upload_max_filesize=50M \
max_input_vars=5000 \
opcache_jit_buffer_size=64M \
SESSION_CACHE_PREFIX=mdl \
AUTO_UPDATE_MOODLE=true \
UPGRADE_MOODLE_CODE=true \
DISABLE_WEB_INSTALL_PLUGIN=false \
MAINT_STATUS_KEYWORD='Status: enabled' \
SKIP_MOODLE_CONFIG=false
ARG ARG_REDISSENTINEL_PLUGIN_GIT_URL='https://github.com/catalyst/moodle-cachestore_redissentinel.git'
ARG ARG_REDISSENTINEL_PLUGIN_GIT_BRANCH='master'
# renovate: datasource=git-refs depName=https://github.com/catalyst/moodle-cachestore_redissentinel branch=master
ARG ARG_REDISSENTINEL_PLUGIN_GIT_COMMIT='b495e8f36a81fd1a2a414e34a978da879c473f31'
ENV REDISSENTINEL_PLUGIN_GIT_URL=${ARG_REDISSENTINEL_PLUGIN_GIT_URL}
ENV REDISSENTINEL_PLUGIN_GIT_BRANCH=${ARG_REDISSENTINEL_PLUGIN_GIT_BRANCH}
ENV REDISSENTINEL_PLUGIN_GIT_COMMIT=${ARG_REDISSENTINEL_PLUGIN_GIT_COMMIT}
ARG ARG_MEMCACHED_PLUGIN_GIT_URL='https://github.com/moodlehq/moodle-cachestore_memcached'
ARG ARG_MEMCACHED_PLUGIN_GIT_BRANCH='master'
# renovate: datasource=git-refs depName=https://github.com/moodlehq/moodle-cachestore_memcached branch=master
ARG ARG_MEMCACHED_PLUGIN_GIT_COMMIT='db68d31ab5856cb55210478fdd452dc0cd6c6d05'
ENV MEMCACHED_PLUGIN_GIT_URL=${ARG_MEMCACHED_PLUGIN_GIT_URL}
ENV MEMCACHED_PLUGIN_GIT_BRANCH=${ARG_MEMCACHED_PLUGIN_GIT_BRANCH}
ENV MEMCACHED_PLUGIN_GIT_COMMIT=${ARG_MEMCACHED_PLUGIN_GIT_COMMIT}
ARG ARG_MOODLE_PLUGIN_LIST=''
ARG ARG_ALLOW_INCOMPATIBLE_PLUGIN='false'
ENV MOODLE_PLUGIN_LIST=${ARG_MOODLE_PLUGIN_LIST}
ENV ALLOW_INCOMPATIBLE_PLUGIN=${ARG_ALLOW_INCOMPATIBLE_PLUGIN}
# Download Moodle source codes and plugin source codes
RUN /usr/libexec/moodle/download-moodle-code \
# Create a backup of custom code
&& cp -p /var/www/html/admin/cli/isinstalled.php /usr/libexec/moodle/