|
1 |
| -FROM ubuntu:focal |
| 1 | +FROM ubuntu:jammy |
2 | 2 |
|
3 | 3 | ARG DEBIAN_FRONTEND=noninteractive
|
4 | 4 |
|
5 | 5 | # 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 | + |
7 | 9 | 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 \ |
22 | 32 | libmagickcore-6.q16-3-extra \
|
23 | 33 | curl \
|
24 |
| - vim \ |
25 | 34 | lsof \
|
26 | 35 | 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 |
29 | 44 |
|
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 |
32 | 54 |
|
33 | 55 | # Docker
|
34 | 56 | RUN apt-get -y install \
|
35 | 57 | apt-transport-https \
|
36 | 58 | ca-certificates \
|
37 | 59 | curl \
|
| 60 | + jq \ |
38 | 61 | 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 \ |
| 62 | + software-properties-common && \ |
| 63 | + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ |
| 64 | + add-apt-repository \ |
| 65 | + "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu \ |
43 | 66 | $(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 |
| 67 | + stable" && \ |
| 68 | + apt-get update -y && \ |
| 69 | + apt-get install -y docker-ce docker-ce-cli containerd.io && \ |
| 70 | + ln -s /var/run/docker-host.sock /var/run/docker.sock |
| 71 | + |
| 72 | +# Dedicated DevContainer user runs Apache |
| 73 | +ENV APACHE_RUN_USER=devcontainer |
| 74 | +ENV APACHE_RUN_GROUP=devcontainer |
| 75 | +RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \ |
| 76 | + adduser ${APACHE_RUN_USER} sudo && \ |
| 77 | + echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ |
| 78 | + sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \ |
| 79 | + sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars" |
| 80 | + |
| 81 | +USER devcontainer |
| 82 | + |
| 83 | +# NVM |
| 84 | +RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash |
| 85 | +RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16' |
| 86 | + |
| 87 | +WORKDIR /var/www/html |
0 commit comments