From 7f983cc5496ca398dfdef90d96fd0e1958371e56 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 1 Feb 2021 12:17:04 +0000 Subject: [PATCH] Add initial support for GitHub codespaces Signed-off-by: Lukas Reschke --- .devcontainer/Dockerfile | 39 ++++++++++++++++++++++++++++++ .devcontainer/codespace.config.php | 9 +++++++ .devcontainer/devcontainer.json | 19 +++++++++++++++ .devcontainer/docker-compose.yml | 29 ++++++++++++++++++++++ .devcontainer/setup.sh | 8 ++++++ 5 files changed, 104 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/codespace.config.php create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml create mode 100755 .devcontainer/setup.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000000..9eeda50ef92 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,39 @@ +FROM ubuntu:focal + +ARG DEBIAN_FRONTEND=noninteractive + +# PHP +RUN apt-get update -y +RUN apt-get install --no-install-recommends -y \ + php7.4 \ + php7.4-gd \ + php7.4-zip \ + php7.4-curl \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-sqlite \ + php7.4-xdebug \ + php7.4-pgsql \ + php7.4-intl \ + curl \ + vim \ + lsof + +RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini +RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini + +# Docker +RUN apt-get -y install \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg-agent \ + software-properties-common +RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - +RUN add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" +RUN apt-get update -y +RUN apt-get install -y docker-ce docker-ce-cli containerd.io +RUN ln -s /var/run/docker-host.sock /var/run/docker.sock diff --git a/.devcontainer/codespace.config.php b/.devcontainer/codespace.config.php new file mode 100644 index 00000000000..9c1730b3c9c --- /dev/null +++ b/.devcontainer/codespace.config.php @@ -0,0 +1,9 @@ + $cloudEnvironmentId . '-80.apps.codespaces.githubusercontent.com', + ); +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..a820364d73d --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,19 @@ +{ + "name": "NextcloudServer", + "dockerComposeFile": "docker-compose.yml", + "service": "nextclouddev", + "postCreateCommand": ".devcontainer/setup.sh", + "forwardPorts": [ + 80, + 8080, + 8025 + ], + "runArgs": [ + "--privileged" + ], + "extensions": [ + "felixfbecker.php-debug", + "felixfbecker.php-intellisense", + "ms-azuretools.vscode-docker" + ], +} \ No newline at end of file diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000000..ada819429f4 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,29 @@ +version: '3' +services: + nextclouddev: + build: . + volumes: + - .:/workspace:cached + - /var/run/docker.sock:/var/run/docker-host.sock + command: /bin/sh -c "while sleep 1000; do :; done" + ports: + - 80:80 + - 8080:8080 + - 8025:8025 + + db: + image: postgres + restart: always + environment: + POSTGRES_PASSWORD: postgres + network_mode: service:nextclouddev + + adminer: + image: adminer + restart: always + network_mode: service:nextclouddev + + mailhog: + image: mailhog/mailhog + restart: always + network_mode: service:nextclouddev diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 00000000000..9d2e3d73f98 --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,8 @@ +#!/bin/bash +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )" + +cd $DIR/ +git submodule update --init + +# Codespace config +cp .devcontainer/codespace.config.php config/codespace.config.php