Skip to content

Commit 724ccb3

Browse files
committed
Merge #250 [backport25] Devcontainer on arm with php 8.1
2 parents 97f8858 + a0d423c commit 724ccb3

1 file changed

Lines changed: 68 additions & 29 deletions

File tree

.devcontainer/Dockerfile

Lines changed: 68 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,86 @@
1-
FROM ubuntu:focal
1+
FROM ubuntu:jammy
22

33
ARG DEBIAN_FRONTEND=noninteractive
44

55
# PHP
6-
RUN apt-get update -y
6+
RUN apt-get update -y && \
7+
apt install -y apache2 vim software-properties-common sudo nano gnupg2
8+
79
RUN apt-get install --no-install-recommends -y \
8-
php7.4 \
9-
php7.4-gd \
10-
php7.4-zip \
11-
php7.4-curl \
12-
php7.4-xml \
13-
php7.4-mbstring \
14-
php7.4-sqlite \
15-
php7.4-xdebug \
16-
php7.4-pgsql \
17-
php7.4-intl \
18-
php7.4-imagick \
19-
php7.4-gmp \
20-
php7.4-apcu \
21-
php7.4-bcmath \
10+
php8.1 \
11+
php8.1-common \
12+
php8.1-gd \
13+
php8.1-zip \
14+
php8.1-curl \
15+
php8.1-xml \
16+
php8.1-xmlrpc \
17+
php8.1-mbstring \
18+
php8.1-sqlite \
19+
php8.1-xdebug \
20+
php8.1-pgsql \
21+
php8.1-intl \
22+
php8.1-imagick \
23+
php8.1-gmp \
24+
php8.1-apcu \
25+
php8.1-bcmath \
26+
php8.1-redis \
27+
php8.1-soap \
28+
php8.1-imap \
29+
php8.1-opcache \
30+
php8.1-cli \
31+
php8.1-dev \
2232
libmagickcore-6.q16-3-extra \
2333
curl \
24-
vim \
2534
lsof \
2635
make \
27-
nodejs \
28-
npm
36+
unzip
37+
38+
# Composer
39+
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
40+
curl -sS https://composer.github.io/installer.sig -o /tmp/composer-setup.sig && \
41+
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') !== trim(file_get_contents('/tmp/composer-setup.sig'))) { echo 'Composer installation failed, invalid hash'; exit(1); }" && \
42+
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
43+
rm /tmp/composer-setup.php /tmp/composer-setup.sig
2944

30-
RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
31-
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
45+
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \
46+
echo "xdebug.remote_autostart = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \
47+
echo "apc.enable_cli=1" >> /etc/php/8.1/cli/conf.d/20-apcu.ini
48+
49+
# Autostart XDebug for apache
50+
RUN { \
51+
echo "xdebug.mode=debug"; \
52+
echo "xdebug.start_with_request=yes"; \
53+
} >> /etc/php/8.1/apache2/conf.d/20-xdebug.ini
3254

3355
# Docker
3456
RUN apt-get -y install \
3557
apt-transport-https \
3658
ca-certificates \
3759
curl \
3860
gnupg-agent \
39-
software-properties-common
40-
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
41-
RUN add-apt-repository \
42-
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
61+
software-properties-common && \
62+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
63+
add-apt-repository \
64+
"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu \
4365
$(lsb_release -cs) \
44-
stable"
45-
RUN apt-get update -y
46-
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
47-
RUN ln -s /var/run/docker-host.sock /var/run/docker.sock
66+
stable" && \
67+
apt-get update -y && \
68+
apt-get install -y docker-ce docker-ce-cli containerd.io && \
69+
ln -s /var/run/docker-host.sock /var/run/docker.sock
70+
71+
# Dedicated DevContainer user runs Apache
72+
ENV APACHE_RUN_USER=devcontainer
73+
ENV APACHE_RUN_GROUP=devcontainer
74+
RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \
75+
adduser ${APACHE_RUN_USER} sudo && \
76+
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
77+
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
78+
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars"
79+
80+
USER devcontainer
81+
82+
# NVM
83+
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
84+
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16'
85+
86+
WORKDIR /var/www/html

0 commit comments

Comments
 (0)