From 1353532b7f86e1e6f4805cdf9f9ba4aef21c8848 Mon Sep 17 00:00:00 2001 From: Patryk Zawadzki <81205+patrys@users.noreply.github.com> Date: Fri, 24 Mar 2023 10:38:51 +0100 Subject: [PATCH] Add devcontainer support to core (#12391) To test, open the folder in VSCode and follow the prompts (if you have remote container support installed, you should be asked to switch to remote development). --- .devcontainer/backend.env | 5 +++ .devcontainer/common.env | 1 + .devcontainer/devcontainer.json | 24 ++++++++++++++ .devcontainer/docker-compose.yml | 56 ++++++++++++++++++++++++++++++++ .gitignore | 1 + CHANGELOG.md | 1 + 6 files changed, 88 insertions(+) create mode 100644 .devcontainer/backend.env create mode 100644 .devcontainer/common.env create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/backend.env b/.devcontainer/backend.env new file mode 100644 index 00000000000..28868da504a --- /dev/null +++ b/.devcontainer/backend.env @@ -0,0 +1,5 @@ +DATABASE_URL=postgres://saleor:saleor@db/saleor +DASHBOARD_URL=http://localhost:9000/ +DEFAULT_FROM_EMAIL=noreply@example.com +CELERY_BROKER_URL=redis://redis:6379/1 +SECRET_KEY=changeme diff --git a/.devcontainer/common.env b/.devcontainer/common.env new file mode 100644 index 00000000000..f03a47391e5 --- /dev/null +++ b/.devcontainer/common.env @@ -0,0 +1 @@ +DEFAULT_CHANNEL_SLUG=default-channel diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..3bade52c427 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,24 @@ +{ + "name": "Saleor", + "dockerComposeFile": "docker-compose.yml", + "service": "saleor", + "workspaceFolder": "/app", + "forwardPorts": [8000], + "postCreateCommand": "python manage.py migrate", + "customizations": { + "vscode": { + "extensions": [ + "Cameron.vscode-pytest", + "charliermarsh.ruff", + "editorconfig.editorconfig", + "ms-python.black-formatter", + "ms-python.flake8", + "ms-python.isort", + "ms-python.pylint", + "ms-python.python", + "ms-python.vscode-pylance", + "streetsidesoftware.code-spell-checker" + ] + } + } +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000000..441d21afa1d --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,56 @@ +version: "3.4" + +services: + saleor: + image: saleor + build: + context: .. + dockerfile: ./Dockerfile + command: ["python", "-m", "saleor"] + env_file: + - common.env + - backend.env + + dashboard: + image: ghcr.io/saleor/saleor-dashboard:3.12.3 + ports: + - 9000:80 + restart: unless-stopped + + db: + image: library/postgres:13-alpine + restart: unless-stopped + volumes: + - saleor-db:/var/lib/postgresql/data + environment: + - POSTGRES_USER=saleor + - POSTGRES_PASSWORD=saleor + + redis: + image: library/redis:5.0-alpine + restart: unless-stopped + volumes: + - saleor-redis:/data + + worker: + image: saleor + build: + context: .. + dockerfile: ./Dockerfile + command: celery -A saleor --app=saleor.celeryconf:app worker --loglevel=info -B + restart: unless-stopped + env_file: + - common.env + - backend.env + depends_on: + - redis + volumes: + # shared volume between worker and api for media + - saleor-media:/app/media + +volumes: + saleor-db: + driver: local + saleor-redis: + driver: local + saleor-media: diff --git a/.gitignore b/.gitignore index 9c53fee3d41..0bec28a7a4e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.py[cod] .* +!.devcontainer !.dockerignore !.github !.gitignore diff --git a/CHANGELOG.md b/CHANGELOG.md index a5954d0d5d1..66ce773ca8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ All notable, unreleased changes to this project will be documented in this file. ### Other changes - Create order discounts for all voucher types - #12272 by @IKarbowiak +- Core now supports Dev Containers for local development - #12391 by @patrys ### Saleor Apps