about summary refs log tree commit diff stats
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile48
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" ]