-14
Dockerfile
-14
Dockerfile
···
1
-
FROM node:22-slim AS base
2
-
ENV PNPM_HOME="/pnpm"
3
-
ENV PATH="$PNPM_HOME:$PATH"
4
-
RUN corepack enable
5
-
6
-
FROM base AS build
7
-
WORKDIR /usr/src/app
8
-
COPY pnpm-lock.yaml .
9
-
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm fetch
10
-
COPY . .
11
-
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
12
-
13
-
ARG VITE_API_SERVICE
14
-
RUN pnpm run -r build
+25
apps/api/Dockerfile
+25
apps/api/Dockerfile
···
1
+
FROM oven/bun:1.3.3 AS base
2
+
WORKDIR /app
3
+
4
+
FROM base AS deps
5
+
COPY package.json bun.lock ./
6
+
COPY apps/*/package.json apps/
7
+
COPY libs/*/package.json libs/
8
+
RUN bun install --frozen-lockfile
9
+
10
+
FROM base AS build
11
+
COPY --from=deps /app/node_modules ./node_modules
12
+
COPY . .
13
+
14
+
WORKDIR /app/apps/api
15
+
RUN bun build ./src/index.ts \
16
+
--compile \
17
+
--minify \
18
+
--sourcemap \
19
+
--bytecode \
20
+
--outfile=/app/dist/api \
21
+
--target=bun
22
+
23
+
FROM base AS run
24
+
COPY --from=build /app/dist/api /app/api
25
+
ENTRYPOINT ["/app/api"]
+25
apps/ingester/Dockerfile
+25
apps/ingester/Dockerfile
···
1
+
FROM oven/bun:1.3.3 AS base
2
+
WORKDIR /app
3
+
4
+
FROM base AS deps
5
+
COPY package.json bun.lock ./
6
+
COPY apps/*/package.json apps/
7
+
COPY libs/*/package.json libs/
8
+
RUN bun install --frozen-lockfile
9
+
10
+
FROM base AS build
11
+
COPY --from=deps /app/node_modules ./node_modules
12
+
COPY . .
13
+
14
+
WORKDIR /app/apps/ingester
15
+
RUN bun build ./src/index.ts \
16
+
--compile \
17
+
--minify \
18
+
--sourcemap \
19
+
--bytecode \
20
+
--outfile=/app/dist/ingester \
21
+
--target=bun
22
+
23
+
FROM base AS run
24
+
COPY --from=build /app/dist/ingester /app/ingester
25
+
ENTRYPOINT ["/app/ingester"]
-43
fly.toml
-43
fly.toml
···
1
-
app = "cookware"
2
-
primary_region = "lhr"
3
-
4
-
[build]
5
-
dockerfile = "Dockerfile"
6
-
[build.args]
7
-
VITE_API_SERVICE = "recipes.blue"
8
-
9
-
[processes]
10
-
web = "bash -c 'cd apps/api && node dist/index.js'"
11
-
ingester = "bash -c 'cd apps/ingester && node dist/index.js'"
12
-
13
-
[env]
14
-
CORS_ORIGINS = "https://recipes.blue,http://127.0.0.1:5173"
15
-
16
-
[deploy]
17
-
release_command = "bash -c 'cd libs/database && pnpm db:migrate'"
18
-
19
-
[[vm]]
20
-
size = "shared-cpu-1x"
21
-
memory = 256
22
-
processes = ["web"]
23
-
24
-
[[vm]]
25
-
size = "shared-cpu-1x"
26
-
memory = 256
27
-
processes = ["ingester"]
28
-
29
-
[[services]]
30
-
http_checks = []
31
-
processes = ["web"]
32
-
internal_port = 8080
33
-
[[services.ports]]
34
-
handlers = ["http"]
35
-
port = 80
36
-
force_https = true
37
-
[[services.ports]]
38
-
handlers = ["tls", "http"]
39
-
port = 443
40
-
41
-
[[statics]]
42
-
guest_path = "/usr/src/app/apps/web/dist"
43
-
url_prefix = "/"