From 8877abb83ffdd95439a695f1f72ede3c6894b650 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Tue, 14 Sep 2021 02:22:14 -0400 Subject: [PATCH] feat: add support for VSCode Dev Containers This cannot be used in codespaces due to the extra mount, but it does allow for local development. --- .devcontainer/Dockerfile | 17 +++++++++++++++++ .devcontainer/bin/copy-plugin | 9 +++++++++ .devcontainer/devcontainer.json | 18 ++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100755 .devcontainer/bin/copy-plugin create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 000000000..7df43cb9d --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,17 @@ +FROM dokku/dokku:latest + +RUN apt-get update +RUN apt-get install --no-install-recommends -y build-essential file nano && \ + apt-get install --no-install-recommends -y shellcheck xmlstarlet && \ + apt-get clean autoclean && \ + apt-get autoremove --yes && \ + rm -rf /var/lib/apt/lists/* + +ADD https://raw.githubusercontent.com/dokku/dokku/master/tests/dhparam.pem /mnt/dokku/etc/nginx/dhparam.pem + +COPY .devcontainer/bin/ /usr/local/bin/ +COPY . . + +RUN make ci-dependencies + +ENV DOKKU_HOSTNAME=dokku.me diff --git a/.devcontainer/bin/copy-plugin b/.devcontainer/bin/copy-plugin new file mode 100755 index 000000000..9bfe505bf --- /dev/null +++ b/.devcontainer/bin/copy-plugin @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +main() { + declare PLUGIN_NAME="$1" + + make go-build-plugin copyplugin PLUGIN_NAME=$PLUGIN_NAME +} + +main "$@" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..756124adf --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,18 @@ +{ + "build": { + "dockerfile": "Dockerfile", + "context": ".." + }, + "containerEnv": { + "DOKKU_HOST_ROOT": "${localWorkspaceFolder}/tmp/data", + "GO_ROOT_MOUNT": "${localWorkspaceFolder}:/go/src/github.com/dokku/dokku" + }, + "initializeCommand": ["mkdir", "-p", "tmp/data"], + "mounts": [ + "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind", + "source=${localWorkspaceFolder}/tmp/data/,target=/mnt/dokku/,type=bind" + ], + "overrideCommand": false, + "postCreateCommand": ["make", "setup-deploy-tests"], + "runArgs": ["--init"] +}