From 82a2963ad746386465af30bd130aafeaf30bb71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn-Michael=20Miehe?= Date: Thu, 21 Mar 2024 23:00:45 +0100 Subject: [PATCH] cleanup/modernize devcontainers --- api/.devcontainer/Dockerfile | 45 ---------------------------- api/.devcontainer/devcontainer.json | 17 +++++++++-- api/.devcontainer/docker-compose.yml | 32 -------------------- api/.env | 1 - api/.vscode/settings.json | 2 +- api/advent22_api/core/settings.py | 2 +- ui/.devcontainer/Dockerfile | 24 --------------- ui/.devcontainer/devcontainer.json | 16 +++++----- ui/.vscode/settings.json | 2 +- 9 files changed, 25 insertions(+), 116 deletions(-) delete mode 100644 api/.devcontainer/Dockerfile delete mode 100644 api/.devcontainer/docker-compose.yml delete mode 100644 api/.env delete mode 100644 ui/.devcontainer/Dockerfile diff --git a/api/.devcontainer/Dockerfile b/api/.devcontainer/Dockerfile deleted file mode 100644 index cfc9d4e..0000000 --- a/api/.devcontainer/Dockerfile +++ /dev/null @@ -1,45 +0,0 @@ -# See here for image contents: https://github.com/devcontainers/images/blob/main/src/python/.devcontainer/Dockerfile - -# [Choice] Python version (use -bookworm or -bullseye variants on local arm64/Apple Silicon): -# - 3, 3.12, 3.11, 3.10, 3.9, 3.8 -# - 3-bookworm, 3.12-bookworm, 3.11-bookworm, 3.10-bookworm, 3.9-bookworm, 3.8-bookworm -# - 3-bullseye, 3.12-bullseye, 3.11-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye -# - 3-buster, 3.12-buster, 3.11-buster, 3.10-buster, 3.9-buster, 3.8-buster -ARG VARIANT="3.12-bookworm" -FROM mcr.microsoft.com/vscode/devcontainers/python:1-${VARIANT} - -# Add "Poetry": https://python-poetry.org -ARG POETRY_HOME="/usr/local" -ENV POETRY_HOME="${POETRY_HOME}" -RUN set -ex; \ - \ - curl -sSL https://install.python-poetry.org | python3 -; \ - poetry self add poetry-plugin-up; - -# [Choice] Node.js version: none, lts/*, 18, 16, 14, 12, 10 -ARG NODE_VERSION="none" -RUN set -ex; \ - \ - if [ "${NODE_VERSION}" != "none" ]; then \ - su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; \ - fi - -# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image. -# COPY requirements.txt /tmp/pip-tmp/ -# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ -# && rm -rf /tmp/pip-tmp - -# [Optional] Uncomment this section to install additional OS packages. -# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ -# && apt-get -y install --no-install-recommends - -RUN set -ex; \ - \ - export DEBIAN_FRONTEND=noninteractive; \ - apt-get update; apt-get install --yes --no-install-recommends \ - git-flow \ - git-lfs \ - ; rm -rf /var/lib/apt/lists/*; - -# [Optional] Uncomment this line to install global node packages. -# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 diff --git a/api/.devcontainer/devcontainer.json b/api/.devcontainer/devcontainer.json index d8d6a33..4c63082 100644 --- a/api/.devcontainer/devcontainer.json +++ b/api/.devcontainer/devcontainer.json @@ -2,9 +2,19 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/python { "name": "Advent22 API", - "dockerComposeFile": "docker-compose.yml", - "service": "api", - "workspaceFolder": "/workspaces/advent22/${localWorkspaceFolderBasename}", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/vscode/devcontainers/python:1-3.11-bookworm", + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/devcontainers-contrib/features/poetry:2": {}, + "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { + "packages": "git-flow, git-lfs" + }, + "ghcr.io/itsmechlark/features/redis-server:1": {} + }, + "containerEnv": { + "TZ": "Europe/Berlin" + }, // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. @@ -26,6 +36,7 @@ ] } }, + "postCreateCommand": "sudo /usr/local/py-utils/bin/poetry self add poetry-plugin-up", // Use 'postStartCommand' to run commands after the container is started. "postStartCommand": "poetry install" // Features to add to the dev container. More info: https://containers.dev/features. diff --git a/api/.devcontainer/docker-compose.yml b/api/.devcontainer/docker-compose.yml deleted file mode 100644 index ae045b7..0000000 --- a/api/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: "3.8" - -services: - api: - build: - context: "." - dockerfile: "Dockerfile" - args: - # Update 'VARIANT' to pick a Python version. - # Append -bookworm, -bullseye or -buster to pin to an OS version. - # Use -bookworm or -bullseye variants on local on arm64/Apple Silicon. - VARIANT: "3.11-bookworm" - NODE_VERSION: "none" - - environment: - TZ: "Europe/Berlin" - - volumes: - - "../..:/workspaces/advent22:cached" - - # Overrides default command so things don't shut down after the process ends. - command: "sleep infinity" - - # Runs app on the same network as the redis container, allows "forwardPorts" in devcontainer.json function. - network_mode: "service:redis" - - # Use "forwardPorts" in **devcontainer.json** to forward an app port locally. - # (Adding the "ports" property to this file will not forward from a Codespace.) - - redis: - image: "redis:7" - restart: "unless-stopped" \ No newline at end of file diff --git a/api/.env b/api/.env deleted file mode 100644 index f1ecb50..0000000 --- a/api/.env +++ /dev/null @@ -1 +0,0 @@ -COMPOSE_PROJECT_NAME="advent22_api" diff --git a/api/.vscode/settings.json b/api/.vscode/settings.json index 0ca9fb2..c4cd5ed 100644 --- a/api/.vscode/settings.json +++ b/api/.vscode/settings.json @@ -5,7 +5,7 @@ "editor.defaultFormatter": "ms-python.black-formatter" }, "editor.codeActionsOnSave": { - "source.organizeImports": true + "source.organizeImports": "explicit" }, "git.closeDiffOnOperation": true, "python.analysis.typeCheckingMode": "basic", diff --git a/api/advent22_api/core/settings.py b/api/advent22_api/core/settings.py index 8ddcfee..2a4ffc9 100644 --- a/api/advent22_api/core/settings.py +++ b/api/advent22_api/core/settings.py @@ -36,7 +36,7 @@ class RedisSettings(BaseModel): Connection to a redis server. """ - host: str = "redis" + host: str = "localhost" port: int = 6379 db: int = 0 protocol: int = 3 diff --git a/ui/.devcontainer/Dockerfile b/ui/.devcontainer/Dockerfile deleted file mode 100644 index a9858df..0000000 --- a/ui/.devcontainer/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 18, 16, 14, 18-bullseye, 16-bullseye, 14-bullseye, 18-buster, 16-buster, 14-buster -ARG VARIANT=16-bullseye -FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} - -# [Optional] Uncomment this section to install additional OS packages. -# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ -# && apt-get -y install --no-install-recommends - -RUN set -ex; \ - \ - export DEBIAN_FRONTEND=noninteractive; \ - apt-get update; apt-get install --yes --no-install-recommends \ - git-flow \ - git-lfs \ - ; rm -rf /var/lib/apt/lists/*; \ - su node -c "git lfs install" - -# [Optional] Uncomment if you want to install an additional version of node using nvm -# ARG EXTRA_NODE_VERSION=10 -# RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" - -# [Optional] Uncomment if you want to install more global node modules -# RUN su node -c "npm install -g " -RUN su node -c "yarn global add @vue/cli" \ No newline at end of file diff --git a/ui/.devcontainer/devcontainer.json b/ui/.devcontainer/devcontainer.json index 86a6f26..f09fb51 100644 --- a/ui/.devcontainer/devcontainer.json +++ b/ui/.devcontainer/devcontainer.json @@ -2,14 +2,14 @@ // https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/javascript-node { "name": "Advent22 UI", - "build": { - "dockerfile": "Dockerfile", - // Update 'VARIANT' to pick a Node version: 18, 16, 14. - // Append -bullseye or -buster to pin to an OS version. - // Use -bullseye variants on local arm64/Apple Silicon. - "args": { - "VARIANT": "18-bullseye" - } + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-18-bullseye", + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { + "packages": "git-flow, git-lfs" + }, + "ghcr.io/devcontainers-contrib/features/vue-cli:2": {} }, // Configure tool-specific properties. "customizations": { diff --git a/ui/.vscode/settings.json b/ui/.vscode/settings.json index 442ec8f..37a5aab 100644 --- a/ui/.vscode/settings.json +++ b/ui/.vscode/settings.json @@ -10,7 +10,7 @@ "editor.defaultFormatter": "esbenp.prettier-vscode" }, "editor.codeActionsOnSave": { - "source.organizeImports": true + "source.organizeImports": "explicit" }, "git.closeDiffOnOperation": true, "editor.tabSize": 2,