-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathDockerfile
109 lines (100 loc) · 3.92 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
FROM debian:bookworm-slim
ARG PHP_VERSION
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
git \
apt-transport-https \
lsb-release \
ca-certificates \
wget \
nginx \
&& ARCH=$(uname -m) \
&& if [ "$ARCH" = "x86_64" ]; then \
wget -O /tmp/cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb; \
elif [ "$ARCH" = "aarch64" ]; then \
wget -O /tmp/cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb; \
else \
echo "Unsupported architecture: $ARCH" && exit 1; \
fi \
&& dpkg -i /tmp/cloudflared.deb \
&& rm /tmp/cloudflared.deb \
&& wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
&& echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
php${PHP_VERSION} \
php${PHP_VERSION}-fpm \
php${PHP_VERSION}-cli \
php${PHP_VERSION}-common \
php${PHP_VERSION}-mysqlnd \
php${PHP_VERSION}-pdo \
php${PHP_VERSION}-sybase \
php${PHP_VERSION}-psr \
php${PHP_VERSION}-xml \
php${PHP_VERSION}-bcmath \
php${PHP_VERSION}-calendar \
php${PHP_VERSION}-ctype \
php${PHP_VERSION}-curl \
php${PHP_VERSION}-dom \
php${PHP_VERSION}-mbstring \
php${PHP_VERSION}-fileinfo \
php${PHP_VERSION}-ftp \
php${PHP_VERSION}-gd \
php${PHP_VERSION}-gettext \
php${PHP_VERSION}-gmp \
php${PHP_VERSION}-iconv \
php${PHP_VERSION}-igbinary \
php${PHP_VERSION}-imagick \
php${PHP_VERSION}-imap \
php${PHP_VERSION}-intl \
php${PHP_VERSION}-ldap \
php${PHP_VERSION}-exif \
php${PHP_VERSION}-memcache \
php${PHP_VERSION}-mongodb \
php${PHP_VERSION}-msgpack \
php${PHP_VERSION}-mysqli \
php${PHP_VERSION}-odbc \
php${PHP_VERSION}-pcov \
php${PHP_VERSION}-pgsql \
php${PHP_VERSION}-phar \
php${PHP_VERSION}-posix \
php${PHP_VERSION}-ps \
php${PHP_VERSION}-pspell \
php${PHP_VERSION}-readline \
php${PHP_VERSION}-shmop \
php${PHP_VERSION}-simplexml \
php${PHP_VERSION}-soap \
php${PHP_VERSION}-sockets \
php${PHP_VERSION}-sqlite3 \
php${PHP_VERSION}-sysvmsg \
php${PHP_VERSION}-sysvsem \
php${PHP_VERSION}-sysvshm \
php${PHP_VERSION}-tokenizer \
php${PHP_VERSION}-xmlreader \
php${PHP_VERSION}-xmlwriter \
php${PHP_VERSION}-xsl \
php${PHP_VERSION}-zip \
php${PHP_VERSION}-mailparse \
php${PHP_VERSION}-memcached \
php${PHP_VERSION}-inotify \
php${PHP_VERSION}-maxminddb \
php${PHP_VERSION}-protobuf \
php${PHP_VERSION}-opcache \
php${PHP_VERSION}-dev \
&& wget -q -O /tmp/composer.phar https://getcomposer.org/download/latest-stable/composer.phar \
&& SHA256=$(wget -q -O - https://getcomposer.org/download/latest-stable/composer.phar.sha256) \
&& echo "$SHA256 /tmp/composer.phar" | sha256sum -c - \
&& mv /tmp/composer.phar /usr/local/bin/composer \
&& chmod +x /usr/local/bin/composer \
&& rm -rf /var/lib/apt/lists/*
# Create user and set environment variables
RUN useradd -m -d /home/container/ -s /bin/bash container \
&& echo "USER=container" >> /etc/environment \
&& echo "HOME=/home/container" >> /etc/environment
WORKDIR /home/container
STOPSIGNAL SIGINT
# Copy entrypoint script
COPY ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh"]