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
This commit is contained in:
itsscb 2023-10-02 22:03:23 +02:00 committed by GitHub
parent a9c53952de
commit 86186af05a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 13 deletions

View File

@ -1,13 +1,24 @@
DB_URL=postgresql://root:secret@localhost:5432/df?sslmode=disable DB_URL=postgresql://root:secret@localhost:5432/df?sslmode=disable
reset_docker: 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: backend_build:
docker build -t df:latest -f bff/Dockerfile 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: network:
docker network create df-network docker network create df-network
@ -19,10 +30,10 @@ migratenew:
migrate create -ext sql -dir bff/db/migration -seq init_schema migrate create -ext sql -dir bff/db/migration -seq init_schema
migrateup: 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: 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: createdb:
docker exec -it postgres createdb --username=root --owner=root df docker exec -it postgres createdb --username=root --owner=root df
@ -48,4 +59,4 @@ server:
mock: mock:
mockgen -package mockdb -destination bff/db/mock/store.go github.com/itsscb/df/bff/db/sqlc Store 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

View File

@ -3,15 +3,15 @@
To first run the application in your local environment you can use To first run the application in your local environment you can use
``` ```
make network # to (re-)build the app image including migration
make postgres make backend_build
make backend_build_image
make backend_run # 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. 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 # Prerequisites