diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..4972729 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.env +frontend/node_modules +frontend/dist +Dockerfile +response.json \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..758e34a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +# frontend +FROM node:16-slim as frontend +RUN corepack enable +RUN corepack prepare pnpm@latest --activate +WORKDIR /app +COPY frontend/package.json frontend/pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile +COPY frontend/ ./ +RUN pnpm build + +# backend +FROM golang:1.20-alpine as backend +WORKDIR /app +COPY . . +RUN rm -rf frontend +COPY --from=frontend /app/ ./frontend +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags='-w -s -extldflags "-static"' -a -o medium + +# final +FROM debian:bullseye-slim +RUN apt-get update && apt-get install -y ca-certificates +COPY --from=backend /app/medium /usr/local/bin/medium +CMD [ "medium" ] \ No newline at end of file diff --git a/fly.toml b/fly.toml new file mode 100644 index 0000000..5bac2b6 --- /dev/null +++ b/fly.toml @@ -0,0 +1,14 @@ +# fly.toml app configuration file generated for medium-rip on 2023-05-28T18:53:27+05:30 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = "medium-rip" +primary_region = "sin" + +[http_service] + internal_port = 8080 + force_https = true + auto_stop_machines = true + auto_start_machines = true + min_machines_running = 0 diff --git a/frontend/package.json b/frontend/package.json index ac747b9..fa3a1f0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,8 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "dev": "vite", - "build": "vite build --watch", + "dev": "vite build --watch", + "build": "vite build", "preview": "vite preview" }, "keywords": [],