From e52f65d0df536d674566991bbca94a81ea581c31 Mon Sep 17 00:00:00 2001 From: Dennis Heinrich Date: Sat, 6 Apr 2024 00:15:02 +0200 Subject: [PATCH] =?UTF-8?q?DevContainer=20f=C3=BCr=20Codespaces=20erstellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile | 43 +++++++++++++++++++++++++++++++++++++ .devcontainer/settings.json | 29 +++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/settings.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..03214c2 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,43 @@ +FROM debian:bookworm + +# Update package repositories and install required packages +RUN apt-get update && \ + apt-get install -y \ + curl \ + wget \ + sudo \ + php \ + php-cli \ + php-mbstring \ + php-xml \ + unzip \ + docker.io + +# Set the working directory +WORKDIR /workspace + +# Install Composer +RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ + && php composer-setup.php --install-dir=/bin --filename=composer \ + && php -r "unlink('composer-setup.php');" + +# Install `ddev` for local development +RUN wget -O ./ddev.deb https://github.com/ddev/ddev/releases/download/v1.23.0-alpha1/ddev_1.23.0-alpha1_linux_amd64.deb +RUN apt-get install ./ddev.deb -y && rm ./ddev.deb + +# Install the `just` command runner +RUN curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /bin + +# Install `node` and `npm` +RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \ + apt-get install -y nodejs + +# Create an developer user with passwordless sudo +RUN useradd -m -s /bin/bash developer && \ + echo 'developer:developer' | chpasswd +RUN chown -R developer:developer /workspace +RUN usermod -aG sudo developer +RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers +USER developer + +CMD [ "bash" ] \ No newline at end of file diff --git a/.devcontainer/settings.json b/.devcontainer/settings.json new file mode 100644 index 0000000..6a9b727 --- /dev/null +++ b/.devcontainer/settings.json @@ -0,0 +1,29 @@ +{ + "name": "JTL Entwicklungsumgebung", + "dockerFile": "Dockerfile", + "workspaceMount": "source=${localWorkspaceFolder}/.,target=/workspace,type=bind,consistency=cached", + "workspaceFolder": "/workspace", + "mounts": [ + "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached" + ], + "runArgs": ["--privileged"], + "features": { + "ghcr.io/devcontainers/features/github-cli:1": { + "version": "latest" + }, + "ghcr.io/devcontainers/features/docker-in-docker:2": { + "moby": false + } + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-azuretools.vscode-docker", + "kokakiwi.vscode-just", + "bmewburn.vscode-intelephense-client", + "DEVSENSE.composer-php-vscode", + "DEVSENSE.phptools-vscode" + ] + } + } +} \ No newline at end of file