@@ -4,33 +4,35 @@ ARG DEBIAN_FRONTEND=noninteractive
44
55# PHP
66RUN apt-get update -y && \
7- apt install -y apache2 vim software-properties-common sudo nano gnupg2
7+ apt install -y apache2 vim software-properties-common sudo nano gnupg2 wget curl git \
8+ lsb-release ca-certificates apt-transport-https && \
9+ add-apt-repository ppa:ondrej/php -y && \
10+ apt-get update -y
811
912RUN apt-get install --no-install-recommends -y \
10- php8.3 \
11- php8.3 -common \
12- php8.3 -gd \
13- php8.3 -zip \
14- php8.3 -curl \
15- php8.3 -xml \
16- php8.3 -xmlrpc \
17- php8.3 -mbstring \
18- php8.3 -sqlite \
19- php8.3 -xdebug \
20- php8.3 -pgsql \
21- php8.3 -intl \
22- php8.3 -imagick \
23- php8.3 -gmp \
24- php8.3 -apcu \
25- php8.3 -bcmath \
26- php8.3 -redis \
27- php8.3 -soap \
28- php8.3 -imap \
29- php8.3 -opcache \
30- php8.3 -cli \
31- php8.3 -dev \
13+ php8.4 \
14+ php8.4 -common \
15+ php8.4 -gd \
16+ php8.4 -zip \
17+ php8.4 -curl \
18+ php8.4 -xml \
19+ php8.4 -xmlrpc \
20+ php8.4 -mbstring \
21+ php8.4 -sqlite \
22+ php8.4 -xdebug \
23+ php8.4 -pgsql \
24+ php8.4 -intl \
25+ php8.4 -imagick \
26+ php8.4 -gmp \
27+ php8.4 -apcu \
28+ php8.4 -bcmath \
29+ php8.4 -redis \
30+ php8.4 -soap \
31+ php8.4 -imap \
32+ php8.4 -opcache \
33+ php8.4 -cli \
34+ php8.4 -dev \
3235 libmagickcore-6.q16-7-extra \
33- curl \
3436 lsof \
3537 make \
3638 unzip
@@ -42,39 +44,39 @@ RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
4244 php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
4345 rm /tmp/composer-setup.php /tmp/composer-setup.sig
4446
45- RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.3 /cli/conf.d/20-xdebug.ini && \
46- echo "xdebug.remote_autostart = 1" >> /etc/php/8.3 /cli/conf.d/20-xdebug.ini && \
47- echo "apc.enable_cli=1" >> /etc/php/8.3 /cli/conf.d/20-apcu.ini
47+ RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.4 /cli/conf.d/20-xdebug.ini && \
48+ echo "xdebug.remote_autostart = 1" >> /etc/php/8.4 /cli/conf.d/20-xdebug.ini && \
49+ echo "apc.enable_cli=1" >> /etc/php/8.4 /cli/conf.d/20-apcu.ini
4850
4951# Autostart XDebug for apache
5052RUN { \
5153 echo "xdebug.mode=debug" ; \
5254 echo "xdebug.start_with_request=yes" ; \
53- } >> /etc/php/8.3 /apache2/conf.d/20-xdebug.ini
55+ } >> /etc/php/8.4 /apache2/conf.d/20-xdebug.ini
5456
5557# Increase PHP memory limit to 512mb
56- RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.3 /apache2/php.ini
58+ RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.4 /apache2/php.ini
5759
58- # Docker
59- RUN apt-get -y install \
60- apt-transport-https \
61- ca-certificates \
62- curl \
63- gnupg-agent \
64- software-properties-common && \
65- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
66- add-apt-repository \
67- "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
68- $(lsb_release -cs) \
69- stable" && \
60+ # Docker CLI only (for controlling host Docker via socket)
61+ RUN install -m 0755 -d /etc/apt/keyrings && \
62+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
63+ chmod a+r /etc/apt/keyrings/docker.asc && \
64+ echo \
65+ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
66+ $(. /etc/os-release && echo " ${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
67+ tee /etc/apt/sources.list.d/docker.list > /dev/null && \
7068 apt-get update -y && \
71- apt-get install -y docker-ce docker-ce- cli containerd.io && \
69+ apt-get install -y docker-ce- cli && \
7270 ln -s /var/run/docker-host.sock /var/run/docker.sock
7371
7472# Dedicated DevContainer user runs Apache
7573ENV APACHE_RUN_USER=devcontainer
7674ENV APACHE_RUN_GROUP=devcontainer
77- RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \
75+ # Delete any existing user/group with UID/GID 1000 first
76+ RUN (getent passwd 1000 && userdel -r $(getent passwd 1000 | cut -d: -f1)) || true && \
77+ (getent group 1000 && groupdel $(getent group 1000 | cut -d: -f1)) || true && \
78+ groupadd -g 1000 ${APACHE_RUN_GROUP} && \
79+ useradd -u 1000 -g 1000 -ms /bin/bash ${APACHE_RUN_USER} && \
7880 adduser ${APACHE_RUN_USER} sudo && \
7981 echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
8082 sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
@@ -84,6 +86,6 @@ USER devcontainer
8486
8587# NVM
8688RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
87- RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16 '
89+ RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 22 '
8890
8991WORKDIR /var/www/html
0 commit comments