From b278585fb62d61772e5eecbfa0117a4a48e0789c Mon Sep 17 00:00:00 2001 From: eizyc Date: Mon, 24 Jun 2024 14:51:57 -0500 Subject: [PATCH] chore(docker): add docker file and use docker network connect postgresql and go container --- Dockerfile | 13 +++++++++++++ Makefile | 2 +- markdown.md | 17 ++++++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..304489a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +# Build stage +FROM golang:1.22.4-alpine3.20 AS builder +WORKDIR /app +COPY . . +RUN go build -o main main.go + +# Run stage +FROM alpine:3.20 +WORKDIR /app +COPY --from=builder /app/main . +COPY app.env . +EXPOSE 8080 +CMD ["/app/main"] \ No newline at end of file diff --git a/Makefile b/Makefile index 474232c..c9b9d52 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ DB_URL=postgresql://root:secret@localhost:5432/simple_bank?sslmode=disable postgres: - docker run --name postgres16 -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:16-alpine + docker run --name postgres16 --network bank-network -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:16-alpine createdb: docker exec -it postgres16 createdb --username=root --owner=root simple_bank diff --git a/markdown.md b/markdown.md index c86dcb4..0b82584 100644 --- a/markdown.md +++ b/markdown.md @@ -14,9 +14,24 @@ make createdb ``` shell migrate -path db/migration/ -database "postgresql://root:secret@localhost:5432/simple_bank?sslmode=disable" -verbose up ``` - +#### install golang-migrate +``` +brew install golang-migrate +``` #### How to make a new version database migration aka. the database need to change some schema ``` make new_migration ``` + +#### How to build the docker and build docker network includes postgresql and go container +``` +\\ build image, in the Dockerfile folder +docker build -t simplebank:last . +\\ create docker network +docker network create bank-network +\\ connect network to postgresql container +docker network connect bank-network postgres16 +\\ container +docker run --name simplebank --network bank-network -p 8080:8080 -e GIN_MODE=release -e DB_SOURCE="postgresql://root:secret@postgres16:5432/simple_bank?sslmode=disable" simplebank:last +``` \ No newline at end of file