Ctrl K
ComunidadGuías…

Dockerfile

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
FROM golang:1.27-alpine AS go-builder

WORKDIR /pocketbase

COPY pocketbase/go.mod pocketbase/go.sum ./
RUN go mod download

COPY pocketbase/*.go ./
ARG APP_VERSION
RUN CGO_ENABLED=0 go build -ldflags "-X main.appVersion=${APP_VERSION:-dev}" -o pocketbase-custom .

FROM oven/bun:1 AS builder

WORKDIR /app

COPY package.json bun.lock ./
RUN bun install --frozen-lockfile

COPY . .
ARG APP_VERSION
ENV APP_VERSION=$APP_VERSION
ENV DOCKER_BUILD=true
RUN if [ -n "$APP_VERSION" ]; then bun pm pkg set version="$APP_VERSION"; fi \
	&& bun run build

FROM node:22-slim

LABEL org.opencontainers.image.source=https://github.com/fmaclen/canutin
LABEL org.opencontainers.image.description="Personal finance app"
LABEL org.opencontainers.image.licenses=Apache-2.0

RUN apt-get update \
	&& apt-get install -y --no-install-recommends ca-certificates \
	&& rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /app/build ./build
COPY --from=builder /app/package.json ./
COPY --from=builder /app/pocketbase/pb_migrations ./pocketbase/pb_migrations
COPY --from=go-builder /pocketbase/pocketbase-custom ./pocketbase/pocketbase-custom

ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=42069

EXPOSE 42069
EXPOSE 42070

CMD ["node", "build/index.js"]