From 1f2bb900ca1db6c319d7cdfded423601879dc7bf Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Sun, 26 Jan 2025 17:14:49 -0500 Subject: [PATCH] feat: Moves docker stuff to it's own directory, same with development databases. --- .gitea/workflows/release.yml | 2 +- .gitignore | 1 + Dockerfile => docker/Dockerfile | 0 dev.Dockerfile => docker/dev.Dockerfile | 0 docker-compose.yml => docker/docker-compose.yml | 12 ++++++++++++ justfile | 15 +++++++++++---- swift-dev | 6 ------ 7 files changed, 25 insertions(+), 11 deletions(-) rename Dockerfile => docker/Dockerfile (100%) rename dev.Dockerfile => docker/dev.Dockerfile (100%) rename docker-compose.yml => docker/docker-compose.yml (85%) delete mode 100755 swift-dev diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0d2534f..d72d2f2 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -57,7 +57,7 @@ jobs: uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: . - file: Dockerfile + file: docker/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/.gitignore b/.gitignore index 1bda595..8d82117 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ db.sqlite ! .env.example .vscode .nvim +data/* diff --git a/Dockerfile b/docker/Dockerfile similarity index 100% rename from Dockerfile rename to docker/Dockerfile diff --git a/dev.Dockerfile b/docker/dev.Dockerfile similarity index 100% rename from dev.Dockerfile rename to docker/dev.Dockerfile diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 85% rename from docker-compose.yml rename to docker/docker-compose.yml index 97b3b5e..4abb55a 100644 --- a/docker-compose.yml +++ b/docker/docker-compose.yml @@ -15,6 +15,7 @@ x-shared_environment: &shared_environment LOG_LEVEL: ${LOG_LEVEL:-debug} + SQLITE_FILENAME: "/data/seed.sqlite" services: app: @@ -23,8 +24,12 @@ services: context: . environment: <<: *shared_environment + volumes: + - "./data:/data" ports: - '8080:8080' + labels: + - dev.orbstack.domains=po.local # user: '0' # uncomment to run as root for testing purposes even though Dockerfile defines 'vapor' user. command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"] migrate: @@ -34,6 +39,8 @@ services: environment: <<: *shared_environment command: ["migrate", "--yes"] + volumes: + - "./data:/data" deploy: replicas: 0 revert: @@ -43,5 +50,10 @@ services: environment: <<: *shared_environment command: ["migrate", "--revert", "--yes"] + volumes: + - "./data:/data" deploy: replicas: 0 + +volumes: + db: diff --git a/justfile b/justfile index 1350077..60df8f0 100644 --- a/justfile +++ b/justfile @@ -2,16 +2,23 @@ docker_image := "purchase_orders" docker_tag := "latest" build-docker file="Dockerfile": - @docker build -f {{file}} -t {{docker_image}}:{{docker_tag}} . + @docker build -f docker/{{file}} -t {{docker_image}}:{{docker_tag}} . seed: swift run App seed -rm-seed: - rm -rf seed.sqlite +rm-seed file="seed.sqlite": + rm -rf {{file}} run: - ./swift-dev + #!/usr/bin/env zsh + touch .build/browser-dev-sync + browser-sync start -p localhost:8080 --ws & + watchexec -w Sources -e .swift -r 'swift build --product App && touch .build/browser-dev-sync' & + watchexec -w .build/browser-dev-sync --ignore-nothing -r '.build/debug/App' + +run-compose: + @docker compose -f ./docker/docker-compose.yml up app clean: rm -rf .build diff --git a/swift-dev b/swift-dev deleted file mode 100755 index b788cb0..0000000 --- a/swift-dev +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env zsh -touch .build/browser-dev-sync -browser-sync start -p localhost:8080 --ws & - -watchexec -w Sources -e .swift -r 'swift build --product App && touch .build/browser-dev-sync' & -watchexec -w .build/browser-dev-sync --ignore-nothing -r '.build/debug/App'