forked from crazy-max/docker-flarum
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
89 lines (81 loc) · 2.28 KB
/
Dockerfile
File metadata and controls
89 lines (81 loc) · 2.28 KB
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
# syntax=docker/dockerfile:1
ARG FLARUM_VERSION=v2.0.0-beta.8
ARG ALPINE_VERSION=3.22
FROM crazymax/yasu:latest AS yasu
FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3
COPY --from=yasu / /
RUN apk --update --no-cache add \
bash \
curl \
git \
libgd \
mysql-client \
mariadb-connector-c \
nginx \
openssh-client \
php84 \
php84-cli \
php84-ctype \
php84-curl \
php84-dom \
php84-exif \
php84-fileinfo \
php84-fpm \
php84-gd \
php84-gmp \
php84-iconv \
php84-intl \
php84-mbstring \
php84-opcache \
php84-openssl \
php84-pdo \
php84-pdo_mysql \
php84-pecl-uuid \
php84-phar \
php84-session \
php84-simplexml \
php84-sodium \
php84-tokenizer \
php84-xml \
php84-xmlwriter \
php84-zip \
php84-zlib \
shadow \
tar \
tzdata \
# Symlink php84 → php so composer and flarum CLI work without path games
&& ln -sf /usr/bin/php84 /usr/bin/php \
&& rm -rf /tmp/* /var/www/*
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2"\
TZ="UTC" \
PUID="1000" \
PGID="1000"
ARG FLARUM_VERSION
RUN mkdir -p /opt/flarum \
&& curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \
&& COMPOSER_CACHE_DIR="/tmp" composer create-project flarum/flarum /opt/flarum \
--stability=beta --no-install \
# 2. add SEN Labs repository for the Authelia plugin
&& COMPOSER_CACHE_DIR="/tmp" composer config --working-dir /opt/flarum repositories.sen-labs \
vcs https://codeberg.org/senlabs/flarum-oauth-authelia.git \
&& COMPOSER_CACHE_DIR="/tmp" composer require --working-dir /opt/flarum \
--no-interaction --prefer-dist \
flarum/core:${FLARUM_VERSION} \
fof/oauth:"*" \
sen-labs/oauth-authelia:"*" \
fof/follow-tags:"*" \
fof/links:"*" \
fof/gamification:"*" \
-W \
## check our extension so it does not break the container
&& find /opt/flarum/vendor/sen-labs/ -name '*.php' -exec php -l {} + \
&& composer clear-cache \
&& addgroup -g ${PGID} flarum \
&& adduser -D -h /opt/flarum -u ${PUID} -G flarum -s /bin/sh -D flarum \
&& chown -R flarum:flarum /opt/flarum \
&& rm -rf /root/.composer /tmp/*
COPY rootfs /
EXPOSE 8000
WORKDIR /opt/flarum
VOLUME [ "/data" ]
ENTRYPOINT [ "/init" ]