From f9de50403321fc24ae7fe454af374255a6d2bf86 Mon Sep 17 00:00:00 2001 From: ras0q Date: Sun, 26 Jan 2025 12:39:55 +0900 Subject: [PATCH 1/2] fix dockerfile --- .dockerignore | 3 +++ server/Dockerfile => Dockerfile | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 .dockerignore rename server/Dockerfile => Dockerfile (72%) diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4e21dadc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +*/.git +client/node_modules +server/target diff --git a/server/Dockerfile b/Dockerfile similarity index 72% rename from server/Dockerfile rename to Dockerfile index 59f84171..2e5ab6a8 100644 --- a/server/Dockerfile +++ b/Dockerfile @@ -4,15 +4,14 @@ FROM node:22 AS frontend-builder WORKDIR /app +COPY client/package.json client/package-lock.json /app/ RUN --mount=type=cache,target=/root/.npm,sharing=locked \ --mount=type=cache,target=/app/node_modules,sharing=locked \ - --mount=type=bind,source=package.json,target=package.json \ - --mount=type=bind,source=package-lock.json,target=package-lock.json \ - npm ci + npm i +COPY client /app RUN --mount=type=cache,target=/root/.npm,sharing=locked \ --mount=type=cache,target=/app/node_modules,sharing=locked \ - --mount=type=bind,source=.,target=. \ npm run build FROM rust:bookworm AS backend-builder @@ -28,23 +27,23 @@ RUN PROTOC_ZIP="protoc-${PROTOC_VERSION}-linux-x86_64.zip" \ && unzip -o "/tmp/${PROTOC_ZIP}" -d /usr/local 'include/*' \ && rm -f "/tmp/${PROTOC_ZIP}" -ENV CARGO_TARGET_DIR=/artifact \ - RUSTUP_HOME=/var/cache/rustup \ - CARGO_HOME=/var/cache/cargo +ENV CARGO_TARGET_DIR=/artifact +ENV RUSTUP_HOME=/var/cache/rustup +ENV CARGO_HOME=/var/cache/cargo RUN --mount=type=cache,target=/var/cache/rustup,sharing=locked \ - --mount=type=bind,source=.,target=. \ + --mount=type=bind,source=./server,target=/app \ rustup show RUN --mount=type=cache,target=/var/cache/rustup,sharing=locked \ --mount=type=cache,target=/var/cache/cargo,sharing=locked \ - --mount=type=bind,source=.,target=. \ - cd server && cargo build --release --locked + --mount=type=bind,source=./server,target=/app \ + cargo build --release --locked FROM debian:bookworm-slim AS server-debian-slim WORKDIR /srv -ENV FRONTEND_DIST_DIR /srv/frontend/dist +ENV FRONTEND_DIST_DIR=/srv/frontend/dist COPY --from=frontend-builder /app/dist ${FRONTEND_DIST_DIR} COPY --from=backend-builder /artifact/release/h24w14 /srv/bin/h24w14 From 7a6da9baef1373c8e35392254cf97b44c659822d Mon Sep 17 00:00:00 2001 From: ras0q Date: Sun, 26 Jan 2025 12:57:04 +0900 Subject: [PATCH 2/2] fix --- Dockerfile | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e5ab6a8..09ac31a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,14 +2,14 @@ FROM node:22 AS frontend-builder -WORKDIR /app +WORKDIR /app/client -COPY client/package.json client/package-lock.json /app/ +COPY client/package.json client/package-lock.json /app/client/ RUN --mount=type=cache,target=/root/.npm,sharing=locked \ --mount=type=cache,target=/app/node_modules,sharing=locked \ npm i -COPY client /app +COPY client /app/client RUN --mount=type=cache,target=/root/.npm,sharing=locked \ --mount=type=cache,target=/app/node_modules,sharing=locked \ npm run build @@ -18,7 +18,7 @@ FROM rust:bookworm AS backend-builder ARG PROTOC_VERSION=29.3 -WORKDIR /app +WORKDIR /app/server RUN PROTOC_ZIP="protoc-${PROTOC_VERSION}-linux-x86_64.zip" \ && curl -fvL -o "/tmp/${PROTOC_ZIP}" \ @@ -32,19 +32,21 @@ ENV RUSTUP_HOME=/var/cache/rustup ENV CARGO_HOME=/var/cache/cargo RUN --mount=type=cache,target=/var/cache/rustup,sharing=locked \ - --mount=type=bind,source=./server,target=/app \ + --mount=type=bind,source=./server,target=/app/server \ + --mount=type=bind,source=./proto,target=/app/proto \ rustup show RUN --mount=type=cache,target=/var/cache/rustup,sharing=locked \ --mount=type=cache,target=/var/cache/cargo,sharing=locked \ - --mount=type=bind,source=./server,target=/app \ + --mount=type=bind,source=./server,target=/app/server \ + --mount=type=bind,source=./proto,target=/app/proto \ cargo build --release --locked FROM debian:bookworm-slim AS server-debian-slim WORKDIR /srv ENV FRONTEND_DIST_DIR=/srv/frontend/dist -COPY --from=frontend-builder /app/dist ${FRONTEND_DIST_DIR} +COPY --from=frontend-builder /app/client/dist ${FRONTEND_DIST_DIR} COPY --from=backend-builder /artifact/release/h24w14 /srv/bin/h24w14 CMD [ "/srv/bin/h24w14" ]