diff options
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 48 |
1 files changed, 16 insertions, 32 deletions
diff --git a/Dockerfile b/Dockerfile index 3d31306..90dd051 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,52 +1,36 @@ # syntax = docker/dockerfile:1 -# Adjust BUN_VERSION as desired -ARG BUN_VERSION=1.1.2 -FROM docker.io/oven/bun:${BUN_VERSION} as base - -LABEL fly_launch_runtime="Bun" +ARG GO_VERSION=1.22.1 +FROM docker.io/library/golang:${GO_VERSION} as builder WORKDIR /app -FROM base as install -RUN mkdir -p /temp/dev -COPY --link bun.lockb package.json /temp/dev/ -RUN cd /temp/dev && bun install --frozen-lockfile - -RUN mkdir -p /temp/prod -COPY --link bun.lockb package.json /temp/prod/ -RUN cd /temp/prod && bun install --frozen-lockfile --production +COPY --link go.mod . +RUN go mod download -FROM base as build -COPY --from=install /temp/dev/node_modules node_modules +COPY --link . . -# Copy application code -COPY --link config.toml config.toml -COPY --link src src -COPY --link bin bin -COPY --link content content -COPY --link templates templates -COPY --link static static +# RUN go vet ./... +ENV ENV=production +RUN go run ./cmd/build -ENV NODE_ENV=production -RUN bun run bin/build.ts -RUN rm -fr node_modules -COPY --from=install /temp/prod/node_modules node_modules -RUN bun build src/index.ts --compile --minify --sourcemap --outfile server +RUN cp -r static/.well-known static/* public +ENV GOOS=linux GOARCH=amd64 CGO_ENABLED=0 +RUN go build ./cmd/server/ # Final stage for app image -FROM gcr.io/distroless/base-nossl +FROM gcr.io/distroless/static WORKDIR /app # Copy built application -COPY config.toml /app/ -COPY --from=build /app /app -COPY --from=build /app/public /app/public +COPY --link config.toml . +COPY --from=builder /app/public public +COPY --from=builder /app/server server # Start the server by default, this can be overwritten at runtime EXPOSE 3000 EXPOSE 9091 -ENV NODE_ENV=production +ENV ENV=production CMD [ "/app/server" ] |