Add Docker containerization with Deno and persistent SQLite volume. Add GitLab CI pipeline with build and deploy stages. Use SQLITE_PATH env var for configurable DB location.
40 lines
892 B
YAML
40 lines
892 B
YAML
stages:
|
|
- build
|
|
- deploy
|
|
|
|
variables:
|
|
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
|
|
IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest
|
|
|
|
build:
|
|
stage: build
|
|
image: docker:latest
|
|
services:
|
|
- docker:dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
script:
|
|
- docker build -t $IMAGE_TAG -t $IMAGE_LATEST .
|
|
- docker push $IMAGE_TAG
|
|
- docker push $IMAGE_LATEST
|
|
|
|
deploy:
|
|
stage: deploy
|
|
image: docker:latest
|
|
services:
|
|
- docker:dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
script:
|
|
- docker pull $IMAGE_LATEST
|
|
- docker stop litenote-jetstream || true
|
|
- docker rm litenote-jetstream || true
|
|
- >
|
|
docker run -d
|
|
--name litenote-jetstream
|
|
--restart unless-stopped
|
|
-v litenote-data:/data
|
|
$IMAGE_LATEST
|
|
only:
|
|
- main
|