diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d0281a8 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,36 @@ +# Docker Ignore File +.git +.gitignore +README.md +*.md +*.log +.txt +.env +.env.* +.dockerignore +Dockerfile +vendor/ +bin/ +tmp/ +temp/ +dist/ +coverage/ + +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Loại trừ các file tạm thời và biên dịch +test/ +tests/ +*.test +*_test.go + +# Loại trừ các file cấu hình IDE + +.idea/ +.vscode/ +*.swp +*.swo \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..403d093 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM golang:1.25.6-alpine AS builder + +WORKDIR /app + +COPY go.mod go.sum ./ + +RUN go mod download + +COPY . . +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -ldflags="-s -w" -o main ./cmd/api +FROM scratch + +COPY --from=builder /app/main /main + +EXPOSE 8080 +ENTRYPOINT ["/main"] \ No newline at end of file