2.5 KiB
2.5 KiB
Python Project Template
Template pre Python projekt s Dev Container workflow, kde sa devcontainer image taha z registry a nebuildi sa pri kazdom otvoreni.
Co projekt obsahuje
- devcontainer konfiguraciu (
.devcontainer/devcontainer.json) - compose definiciu pre devcontainer (
.devcontainer/docker-compose.yml) - centralne nastavenie verzie Pythonu a image tagov (
.devcontainer/.env) - skript na build/push devcontainer image (
scripts/publish-devcontainer-image.ps1) - VS Code tasky na build/push (
.vscode/tasks.json) - vzorovy
Dockerfilepre aplikaciu (Dockerfile)
Centralne nastavenie verzie a repo
Vsetko sa riadi cez .devcontainer/.env:
PYTHON_BASE- verzia Pythonu pre devcontainer imageDEVCONTAINER_IMAGE_PULL_REPO- odkial sa image taha pri otvoreni devcontainera (napr.docker.masara.eu/python)DEVCONTAINER_IMAGE_PUSH_REPO- kam sa image pushuje pri publikovani (napr.repo.masara.eu/python)DEVCONTAINER_IMAGE_REV- revizia image (napr.0.1)
Build a publish devcontainer image
Predpoklady:
- Docker je nainstalovany a bezi
- mas pristup do push registry (
repo.masara.eu)
Cez VS Code task
- Spusti task
devcontainer: build and push image. - Task zavola skript
scripts/publish-devcontainer-image.ps1 -Push.
Cez terminal
# iba build
powershell -ExecutionPolicy Bypass -File scripts/publish-devcontainer-image.ps1
# build + push
powershell -ExecutionPolicy Bypass -File scripts/publish-devcontainer-image.ps1 -Push
Poznamka:
- Ak
docker pushzlyha (napr. neautorizovany pristup), skript spravi fallbackdocker login <registry>a push zopakuje este raz.
Pouzitie pri vytvoreni/otvoreni projektu
- Naklonuj alebo vytvor projekt z tejto sablony.
- Nastav hodnoty v
.devcontainer/.env(hlavnePYTHON_BASE, pull/push repo, revision). - Ak menis base image (napr. Python verziu), publikuj novu verziu devcontainer image do push registry.
- Otvor projekt vo VS Code a pouzi
Reopen in Container.
Devcontainer sa spusti z image definovaneho v .devcontainer/docker-compose.yml:
- image sa taha z
DEVCONTAINER_IMAGE_PULL_REPO - workspace je pripojeny bind mountom do
/workspace postCreateCommandvytvori.venva nainstaluje zavislosti zrequirements.txt
Bezne scenare
-
Chcem iba zmenit Python verziu:
- Zmen
PYTHON_BASEv.devcontainer/.env. - Spusti
devcontainer: build and push image. - Vo VS Code daj
Rebuild/Reopen in Container.
- Zmen
-
Chcem zmenit iba aplikacny kod:
- Nerebuildi sa devcontainer image, staci reopen/restart kontajnera podla potreby.