feat(release): stage GitWorkshop and next node updates
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
FROM docker.io/library/node:24-alpine AS build
|
||||
|
||||
# GitWorkshop has no release artifacts, so pin the audited source revision.
|
||||
# The fetch verifies that the exact requested commit was checked out before any
|
||||
# dependency or build command runs.
|
||||
ARG GITWORKSHOP_COMMIT=dc36db64f6a2cca29d109829eabaf0a49d4bf4da
|
||||
RUN apk add --no-cache git
|
||||
WORKDIR /src
|
||||
RUN git init \
|
||||
&& git remote add origin https://github.com/DanConwayDev/gitworkshop.git \
|
||||
&& git fetch --depth=1 origin "${GITWORKSHOP_COMMIT}" \
|
||||
&& git checkout --detach FETCH_HEAD \
|
||||
&& test "$(git rev-parse HEAD)" = "${GITWORKSHOP_COMMIT}"
|
||||
|
||||
COPY gitworkshop-archipelago.patch /tmp/gitworkshop-archipelago.patch
|
||||
RUN git apply --check /tmp/gitworkshop-archipelago.patch \
|
||||
&& git apply /tmp/gitworkshop-archipelago.patch
|
||||
RUN npm ci
|
||||
RUN APP_BASE_PATH=/app/archipelago-source/ \
|
||||
APP_RELEASE_VERSION="archipelago-${GITWORKSHOP_COMMIT}" \
|
||||
npm run build
|
||||
|
||||
FROM docker.io/library/nginx:1.27.4-alpine
|
||||
|
||||
COPY --from=build /src/dist/ /usr/share/nginx/html/
|
||||
COPY nginx-main.conf /etc/nginx/nginx.conf
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY UPSTREAM.md /usr/share/doc/archipelago-source/UPSTREAM.md
|
||||
|
||||
# Run both nginx master and workers as the packaged unprivileged user. Writable
|
||||
# runtime paths live on the manifest's small mode-1777 `/tmp` tmpfs, so the
|
||||
# container needs neither Linux capabilities nor a writable root filesystem.
|
||||
EXPOSE 8337
|
||||
ENTRYPOINT []
|
||||
USER nginx
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
Reference in New Issue
Block a user