diff --git a/Dockerfile b/Dockerfile index e0fc4df..b48db82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,9 +5,18 @@ RUN bun install COPY . . RUN bun run build -FROM oven/bun:slim +FROM golang:alpine AS server_builder WORKDIR /app -COPY --from=build /app/build ./build -COPY server.ts ./server.ts -EXPOSE 3000 -CMD ["bun", "server.ts"] +COPY go.mod ./ +RUN go mod download +COPY main.go ./ +COPY --from=frontend_builder /app/build ./build +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main + +FROM alpine:latest +WORKDIR /app +RUN apk add --no-cache ca-certificates +COPY --from=server_builder /app/main ./main +COPY --from=server_builder /app/build ./build +EXPOSE 8181 +CMD ["./main"] diff --git a/main.go b/main.go new file mode 100644 index 0000000..2031c86 --- /dev/null +++ b/main.go @@ -0,0 +1,15 @@ +package main + +import ( + "log" + "net/http" +) + +func main() { + fs := http.FileServer(http.Dir("./dist")) + http.Handle("/", fs) + + addr := ":8181" + log.Println("Server started on", addr) + log.Fatal(http.ListenAndServe(addr, nil)) +}