From 86186af05a5693b9c189fa9f9ad2fdfb8ba8d9ee Mon Sep 17 00:00:00 2001 From: itsscb Date: Mon, 2 Oct 2023 22:03:23 +0200 Subject: [PATCH] Itsscb/issue_Add-Dockerfile-for-backend-57 (#61) * Add Dockerfile for backend Fixes #57 * Add Dockerfile for backend Fixes #57 * removes a temporary test relict * Major changes in Makefile --- Makefile | 27 +++++++++++++++++++-------- README.md | 10 +++++----- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 200af8f..47f4579 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,24 @@ DB_URL=postgresql://root:secret@localhost:5432/df?sslmode=disable reset_docker: - docker rm -vf df; docker rmi -f df; docker rm -vf postgres; docker rmi -f postgres + docker rm -vf df; docker rmi -f df; docker rm -vf postgres; docker rmi -f postgres; docker rm -vf migrate -backend_build_image: - docker build -t df:latest -f bff/Dockerfile +backend_build: + make network; \ + make postgres; \ + docker rm -vf df; \ + docker rmi -f df:latest; \ + docker rmi -f docker.io/library/golang:1.21-alpine3.18; \ + docker build -t df:latest -f bff/Dockerfile; \ + docker exec -it postgres createdb --username=root --owner=root df; \ + docker run --name migrateup --rm --privileged=true -v $(PWD)/bff/db/migration:/migrations --network host migrate/migrate -path=/migrations/ -database $(DB_URL) up + +backend: + docker start postgres; docker rm -vf df; docker run --name df --rm -p 8080:8080 --network df-network -d df:latest + +backend-stop: + docker stop postgres; docker stop df -backend_run: - make createdb; make migrateup; docker rm -vf df; docker run --name df --rmi -p 8080:8080 --network df-network -d df:latest network: docker network create df-network @@ -19,10 +30,10 @@ migratenew: migrate create -ext sql -dir bff/db/migration -seq init_schema migrateup: - migrate -path bff/db/migration -database $(DB_URL) -verbose up + docker run --name migrateup --privileged=true --rm -v $(PWD)/bff/db/migration:/migrations --network host migrate/migrate -path=/migrations/ -database $(DB_URL) up migratedown: - migrate -path bff/db/migration -database $(DB_URL) -verbose down + docker run --name migratedown --privileged=true --rm -v $(PWD)/bff/db/migration:/migrations --network host migrate/migrate -path=/migrations/ -database $(DB_URL) down -all createdb: docker exec -it postgres createdb --username=root --owner=root df @@ -48,4 +59,4 @@ server: mock: mockgen -package mockdb -destination bff/db/mock/store.go github.com/itsscb/df/bff/db/sqlc Store -.PHONY: postgres migratenew createdb dropdb migrateup migratedown sqlc sqlcinit test server initialize backend_build_image backend_run reset_docker +.PHONY: postgres migratenew createdb dropdb migrateup migratedown sqlc sqlcinit test server backend_build backend backend-stop reset_docker diff --git a/README.md b/README.md index 46fb127..c855bf3 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,15 @@ To first run the application in your local environment you can use ``` -make network -make postgres -make backend_build_image -make backend_run +# to (re-)build the app image including migration +make backend_build + +# to run the db and the app as docker images +make backend ``` or run those commands, listed in ```Makefile```, ***manually*** with your terminal in the repository root directory. -***IMPORTANT***: You've got to have *golang-migrate* installed to run the backend. # Prerequisites