Skip to content

Commit 667d380

Browse files
committed
Update Dockerfile for latest PHP and other dependencies
Signed-off-by: Riddhesh Sanghvi <riddhesh237@gmail.com>
1 parent 0357084 commit 667d380

File tree

1 file changed

+24
-108
lines changed

1 file changed

+24
-108
lines changed

Dockerfile

Lines changed: 24 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,131 +1,47 @@
1-
# alpine:latest at 2021-06-01T15:15:12IST
2-
FROM alpine@sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f
1+
FROM ubuntu:20.04
2+
3+
ARG DEBIAN_FRONTEND=noninteractive
34

45
LABEL "com.github.actions.icon"="upload-cloud"
56
LABEL "com.github.actions.color"="yellow"
67
LABEL "com.github.actions.name"="Deploy WordPress"
78
LABEL "com.github.actions.description"="Deploy WordPress code to a server"
89
LABEL "org.opencontainers.image.source"="https://github.com/rtCamp/action-deploy-wordpress"
910

10-
# Environments
11-
ENV TIMEZONE Asia/Kolkata
12-
ENV PHP_MEMORY_LIMIT 512M
13-
ENV MAX_UPLOAD 50M
14-
ENV PHP_MAX_FILE_UPLOAD 200
15-
ENV PHP_MAX_POST 100M
16-
ENV PHP_INI_DIR /etc/php7/php.ini
17-
ENV HOME /root
11+
1812
ENV PATH "/composer/vendor/bin:~/.local/bin:$PATH"
1913
ENV COMPOSER_ALLOW_SUPERUSER 1
2014
ENV COMPOSER_HOME /composer
21-
ENV VAULT_VERSION 1.0.2
22-
23-
# PHP-CLI installation inspired from https://github.com/bravist/php-cli-alpine-aliyun-app/blob/master/Dockerfile
24-
# https://github.com/matriphe/docker-alpine-php/blob/master/7.0/FPM/Dockerfile
25-
26-
RUN apk update \
27-
&& apk upgrade \
28-
&& apk add \
29-
bash \
30-
jq \
31-
curl \
32-
git \
33-
tzdata \
34-
rsync \
35-
yarn \
36-
mysql-client \
37-
subversion \
38-
unzip \
39-
wget \
40-
zip \
41-
nodejs \
42-
npm \
43-
openssh-client \
44-
php7 \
45-
php7-dev \
46-
php7-apcu \
47-
php7-bcmath \
48-
php7-bz2 \
49-
php7-xmlwriter \
50-
php7-ctype \
51-
php7-curl \
52-
php7-exif \
53-
php7-iconv \
54-
php7-intl \
55-
php7-json \
56-
php7-mbstring\
57-
php7-opcache \
58-
php7-openssl \
59-
php7-pcntl \
60-
php7-pdo \
61-
php7-mysqlnd \
62-
php7-mysqli \
63-
php7-pdo_mysql \
64-
php7-pdo_pgsql \
65-
php7-phar \
66-
php7-posix \
67-
php7-session \
68-
php7-xml \
69-
php7-simplexml \
70-
php7-mcrypt \
71-
php7-xsl \
72-
php7-zip \
73-
php7-zlib \
74-
php7-dom \
75-
php7-redis\
76-
php7-tokenizer \
77-
php7-gd \
78-
php7-fileinfo \
79-
php7-zmq \
80-
php7-memcached \
81-
php7-xmlreader \
82-
python3 \
83-
py-pip \
84-
&& pip install shyaml \
85-
&& cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
86-
&& echo "${TIMEZONE}" > /etc/timezone \
87-
&& apk del tzdata \
88-
&& pip install shyaml \
89-
&& rm -rf /var/cache/apk/*
9015

91-
# https://github.com/docker-library/php/issues/240
92-
# https://gist.github.com/guillemcanal/be3db96d3caa315b4e2b8259cab7d07e
93-
# https://forum.alpinelinux.org/forum/installation/php-iconv-issue
94-
# https://github.com/gliderlabs/docker-alpine/issues/157#issuecomment-200860301
95-
96-
RUN rm -rf /var/cache/apk/*
97-
98-
# Set environments
99-
RUN sed -i "s|;*date.timezone =.*|date.timezone = ${TIMEZONE}|i" "$PHP_INI_DIR" && \
100-
sed -i "s|;*memory_limit =.*|memory_limit = ${PHP_MEMORY_LIMIT}|i" "$PHP_INI_DIR" && \
101-
sed -i "s|;*upload_max_filesize =.*|upload_max_filesize = ${MAX_UPLOAD}|i" "$PHP_INI_DIR" && \
102-
sed -i "s|;*max_file_uploads =.*|max_file_uploads = ${PHP_MAX_FILE_UPLOAD}|i" "$PHP_INI_DIR" && \
103-
sed -i "s|;*post_max_size =.*|post_max_size = ${PHP_MAX_POST}|i" "$PHP_INI_DIR" && \
104-
sed -i "s|;*cgi.fix_pathinfo=.*|cgi.fix_pathinfo= 0|i" "$PHP_INI_DIR"
105-
106-
# Update php config
107-
RUN mkdir -p "/etc/php7/conf.d" && \
108-
echo "memory_limit=-1" > "/etc/php7/conf.d/memory-limit.ini" && \
109-
echo "date.timezone=Asia/Kolkata" > "/etc/php7/conf.d/date_timezone.ini"
16+
RUN apt update && \
17+
apt install -y \
18+
bash \
19+
git \
20+
curl \
21+
jq \
22+
rsync \
23+
zip \
24+
unzip \
25+
python3-pip \
26+
software-properties-common && \
27+
add-apt-repository ppa:ondrej/php && \
28+
apt update && \
29+
apt-get install -y php7.4-cli php7.4-curl php7.4-json php7.4-mbstring php7.4-xml php7.4-iconv && \
30+
pip3 install shyaml && \
31+
rm -rf /var/lib/apt/lists/*
11032

11133
# Setup wp-cli
11234
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
113-
chmod +x wp-cli.phar && \
114-
mv wp-cli.phar /usr/local/bin/wp
35+
chmod +x wp-cli.phar && \
36+
mv wp-cli.phar /usr/local/bin/wp
11537

11638
# Setup composer
11739
RUN mkdir -p /composer && \
118-
curl -sS https://getcomposer.org/installer | \
119-
php -- --install-dir=/usr/bin/ --filename=composer
40+
curl -sS https://getcomposer.org/installer | \
41+
php -- --install-dir=/usr/bin/ --filename=composer
12042
COPY composer.* /composer/
12143
RUN cd /composer && composer install
12244

123-
# Setup Vault
124-
RUN wget https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip && \
125-
unzip vault_${VAULT_VERSION}_linux_amd64.zip && \
126-
rm vault_${VAULT_VERSION}_linux_amd64.zip && \
127-
mv vault /usr/local/bin/vault
128-
12945
COPY deploy.php hosts.yml /
13046
COPY *.sh /
13147
RUN chmod +x /*.sh

0 commit comments

Comments
 (0)