From 7bb4386b65dc91c6f546cb730e6b2d24fbb2d311 Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Fri, 17 Jun 2022 03:00:48 -0300 Subject: [PATCH 1/3] Add docker to the devcontainer --- .devcontainer/Dockerfile | 10 ++++++++++ .devcontainer/devcontainer.json | 9 +++++---- .devcontainer/docker-compose.yml | 26 -------------------------- .devcontainer/initialize.sh | 18 ++++++++++++++++++ docker-compose.yml | 29 +++++++++++++++++++++++++++++ 5 files changed, 62 insertions(+), 30 deletions(-) create mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/docker-compose.yml create mode 100755 .devcontainer/initialize.sh create mode 100644 docker-compose.yml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..52b044de --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,10 @@ +FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-16 + +# Install Docker +ENV DOCKER_BUILDKIT="1" +# https://github.com/microsoft/vscode-dev-containers/commits/main/script-library/docker-debian.sh +ARG DOCKER_SCRIPT_VERSION="364972b0d7d20ee5de40c1084e65f3f1bc6d5951" +RUN bash -c "$(curl -fsSL "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/${DOCKER_SCRIPT_VERSION}/script-library/docker-debian.sh")" \ + && rm -rf /var/lib/apt/lists/* +ENTRYPOINT ["/usr/local/share/docker-init.sh"] +CMD ["sleep", "infinity"] diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 919eadd2..ea8bcc7c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,8 +1,8 @@ // See https://aka.ms/vscode-remote/devcontainer.json for format details. { - "dockerComposeFile": "docker-compose.yml", + "dockerComposeFile": "../docker-compose.yml", "service": "dev", - "workspaceFolder": "/workspace", + "workspaceFolder": "${localWorkspaceFolder}", "shutdownAction": "stopCompose", "portsAttributes": { "41000": { @@ -10,7 +10,7 @@ "onAutoForward": "silent" } }, - "initializeCommand": "git submodule update --init", + "initializeCommand": ".devcontainer/initialize.sh", "postCreateCommand": "yarn install", "extensions": [ "github.vscode-pull-request-github", @@ -21,7 +21,8 @@ "runem.lit-plugin", "davidanson.vscode-markdownlint", "redhat.vscode-yaml", - "lokalise.i18n-ally" + "lokalise.i18n-ally", + "ms-azuretools.vscode-docker" ], "settings": { "files.eol": "\n", diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml deleted file mode 100644 index 985cb4fb..00000000 --- a/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -version: '3' -services: - dev: - user: node - image: mcr.microsoft.com/vscode/devcontainers/javascript-node:0-16 - ports: - # Rollup - - 41000:41000 - volumes: - - ..:/workspace:cached - command: [sleep, infinity] - hass: - extends: - file: ./frigate-hass-integration/docker-compose.yml - service: hass - volumes: - - ./preconfig:/preconfig.d/02-card:ro - frigate: - extends: - file: ./frigate-hass-integration/docker-compose.yml - service: frigate - mqtt: - extends: - file: ./frigate-hass-integration/docker-compose.yml - service: mqtt diff --git a/.devcontainer/initialize.sh b/.devcontainer/initialize.sh new file mode 100755 index 00000000..b135bbb6 --- /dev/null +++ b/.devcontainer/initialize.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -euo pipefail + +readonly wanted_line_key="LOCAL_WORKSPACE_FOLDER" +readonly wanted_line="${wanted_line_key}='${PWD}'" +readonly file=".env" + +echo "Writing ${wanted_line} to ${file}" >&2 +if grep --quiet "^${wanted_line_key}=" "${file}"; then + sed --in-place "s,^${wanted_line_key}=.*,${wanted_line}," "${file}" +else + echo "LOCAL_WORKSPACE_FOLDER='${PWD}'" >"${file}" +fi + +set -x + +git submodule update --init diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..5a38fa8b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +--- +version: '3' +services: + dev: + user: node + init: true + build: .devcontainer + ports: + # Rollup + - 41000:41000 + env_file: + - .env + volumes: + - /var/run/docker.sock:/var/run/docker-host.sock + - .:${LOCAL_WORKSPACE_FOLDER}:cached + hass: + extends: + file: .devcontainer/frigate-hass-integration/docker-compose.yml + service: hass + volumes: + - .devcontainer/preconfig:/preconfig.d/02-card:ro + frigate: + extends: + file: .devcontainer/frigate-hass-integration/docker-compose.yml + service: frigate + mqtt: + extends: + file: .devcontainer/frigate-hass-integration/docker-compose.yml + service: mqtt From 8cfbe3958a610487d433b2797ffff4922384f247 Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Sat, 18 Jun 2022 22:20:41 -0300 Subject: [PATCH 2/3] Handle unpresence of .env better --- .devcontainer/initialize.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/initialize.sh b/.devcontainer/initialize.sh index b135bbb6..1f4e069c 100755 --- a/.devcontainer/initialize.sh +++ b/.devcontainer/initialize.sh @@ -7,7 +7,7 @@ readonly wanted_line="${wanted_line_key}='${PWD}'" readonly file=".env" echo "Writing ${wanted_line} to ${file}" >&2 -if grep --quiet "^${wanted_line_key}=" "${file}"; then +if [[ -f "${file}" ]] && grep --quiet "^${wanted_line_key}=" "${file}"; then sed --in-place "s,^${wanted_line_key}=.*,${wanted_line}," "${file}" else echo "LOCAL_WORKSPACE_FOLDER='${PWD}'" >"${file}" From 6ba35093e9ac75ecb5481038178acf0d8a4e831a Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Sat, 18 Jun 2022 22:22:33 -0300 Subject: [PATCH 3/3] Use wanted_line in one more place --- .devcontainer/initialize.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/initialize.sh b/.devcontainer/initialize.sh index 1f4e069c..850b264e 100755 --- a/.devcontainer/initialize.sh +++ b/.devcontainer/initialize.sh @@ -10,7 +10,7 @@ echo "Writing ${wanted_line} to ${file}" >&2 if [[ -f "${file}" ]] && grep --quiet "^${wanted_line_key}=" "${file}"; then sed --in-place "s,^${wanted_line_key}=.*,${wanted_line}," "${file}" else - echo "LOCAL_WORKSPACE_FOLDER='${PWD}'" >"${file}" + echo "${wanted_line}" >"${file}" fi set -x