diff --git a/.gitignore b/.gitignore index 515e8d71..ed13bf37 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .* staging/ !/.gitignore -!/.github \ No newline at end of file +!/.github +!build/.dockerignore \ No newline at end of file diff --git a/build/.dockerignore b/build/.dockerignore new file mode 100755 index 00000000..526398d9 --- /dev/null +++ b/build/.dockerignore @@ -0,0 +1,13 @@ +node_modules +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.git +.gitignore +README.md +.env +.nyc_output +coverage +.vscode +.DS_Store +*.log \ No newline at end of file diff --git a/build/Dockerfile b/build/Dockerfile index f9bca1e6..7a8067da 100755 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,26 +1,19 @@ -# Build stage FROM golang:1.21-alpine AS builder WORKDIR /app -# Copy source code first COPY go.mod main.go ./ -# Download dependencies and build RUN go mod tidy && \ go mod download && \ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o server . -# Final stage - use scratch for minimal image FROM scratch -# Add ca-certificates for HTTPS requests COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ -# Copy the binary COPY --from=builder /app/server /server -# Create non-root user USER 65534:65534 EXPOSE 4050