forked from phpvms/phpvms
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
49 lines (35 loc) · 1.31 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
# This Dockerfile is used to create the base phpVMS image for Docker in production.
# It is based on https://serversideup.net/open-source/docker-php/.
FROM composer:latest AS vendor
LABEL org.opencontainers.image.description="The official phpVMS image"
COPY composer.json composer.json
COPY composer.lock composer.lock
COPY app/Database app/Database
RUN composer install \
--ignore-platform-reqs \
--no-interaction \
--no-plugins \
--no-scripts \
--prefer-dist
FROM serversideup/php:8.4-fpm
ARG WWWUSER=1000
ARG WWWGROUP=1000
# Switch to root so we can do root things
USER root
# Install missing extensions with root permissions
RUN install-php-extensions intl bcmath
# Install mariadb client (required for backups)
RUN apt-get update; \
apt-get upgrade -yqq; \
apt-get install -yqq --no-install-recommends --show-progress \
mariadb-client
# Deal with permissions
RUN usermod -ou $WWWUSER www-data \
&& groupmod -og $WWWGROUP www-data
# Drop back to our unprivileged user
USER www-data
# Copy application files
COPY --chown=www-data:www-data . /var/www/html
COPY --chmod=755 ./resources/docker/run-dump-autoload.sh /etc/entrypoint.d/20-run-dump-autoload.sh
# Copy deps from the composer build stage
COPY --chown=www-data:www-data --from=vendor /app/vendor/ /var/www/html/vendor/