chore: sync Dockerfile with reference and fix GHCR name-canonical
This commit is contained in:
parent
6d48b7d311
commit
3018ff04c1
2
.github/workflows/deploy_ghcr.yml
vendored
2
.github/workflows/deploy_ghcr.yml
vendored
@ -70,7 +70,7 @@ jobs:
|
|||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
|
|
||||||
# Publica por digest e deixa o merge job criar a tag multi-arch final
|
# Publica por digest e deixa o merge job criar a tag multi-arch final
|
||||||
outputs: type=image,name=${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
|
outputs: type=image,name=${{ env.IMAGE_NAME }},push-by-digest=true,push=true
|
||||||
|
|
||||||
# Cache em dois níveis:
|
# Cache em dois níveis:
|
||||||
# 1) GHA por branch+arquitetura (hit rápido no fluxo atual)
|
# 1) GHA por branch+arquitetura (hit rápido no fluxo atual)
|
||||||
|
|||||||
@ -1,57 +1,33 @@
|
|||||||
# pre-build stage
|
# pre-build stage
|
||||||
FROM node:24-alpine as node
|
FROM node:23-alpine as node
|
||||||
|
|
||||||
FROM ruby:3.4.4-alpine3.21 AS pre-builder
|
FROM ruby:3.4.4-alpine3.21 AS pre-builder
|
||||||
|
|
||||||
ARG NODE_VERSION="24.13.0"
|
|
||||||
ARG PNPM_VERSION="10.2.0"
|
ARG PNPM_VERSION="10.2.0"
|
||||||
ENV NODE_VERSION=${NODE_VERSION}
|
|
||||||
ENV PNPM_VERSION=${PNPM_VERSION}
|
ENV PNPM_VERSION=${PNPM_VERSION}
|
||||||
|
|
||||||
# ARG default to production settings
|
# install node
|
||||||
# For development docker-compose file overrides ARGS
|
COPY --from=node /usr/local/bin/node /usr/local/bin/node
|
||||||
ARG BUNDLE_WITHOUT="development:test"
|
|
||||||
ENV BUNDLE_WITHOUT ${BUNDLE_WITHOUT}
|
|
||||||
ENV BUNDLER_VERSION=2.5.16
|
|
||||||
|
|
||||||
ARG RAILS_SERVE_STATIC_FILES=true
|
|
||||||
ENV RAILS_SERVE_STATIC_FILES ${RAILS_SERVE_STATIC_FILES}
|
|
||||||
|
|
||||||
ARG RAILS_ENV=production
|
|
||||||
ENV RAILS_ENV ${RAILS_ENV}
|
|
||||||
|
|
||||||
ARG NODE_OPTIONS="--max-old-space-size=4096 --openssl-legacy-provider"
|
|
||||||
ENV NODE_OPTIONS ${NODE_OPTIONS}
|
|
||||||
|
|
||||||
ENV BUNDLE_PATH="/gems"
|
|
||||||
|
|
||||||
RUN apk update && apk add --no-cache \
|
|
||||||
openssl \
|
|
||||||
tar \
|
|
||||||
build-base \
|
|
||||||
tzdata \
|
|
||||||
postgresql-dev \
|
|
||||||
postgresql-client \
|
|
||||||
git \
|
|
||||||
curl \
|
|
||||||
xz \
|
|
||||||
&& mkdir -p /var/app \
|
|
||||||
&& gem install bundler -v "$BUNDLER_VERSION"
|
|
||||||
|
|
||||||
COPY --from=node /usr/local/bin/node /usr/local/bin/
|
|
||||||
COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules
|
COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules
|
||||||
RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \
|
COPY --from=node /usr/local/include/node /usr/local/include/node
|
||||||
|
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs \
|
||||||
|
&& ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \
|
||||||
&& ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
|
&& ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
build-base \
|
||||||
|
git \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
tzdata \
|
||||||
|
shared-mime-info \
|
||||||
|
vips-dev
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package.json pnpm-lock.yaml .pnpm-file.cjs ./
|
||||||
|
|
||||||
RUN npm install -g pnpm@${PNPM_VERSION}
|
RUN npm install -g pnpm@${PNPM_VERSION}
|
||||||
|
|
||||||
RUN echo 'export PNPM_HOME="/root/.local/share/pnpm"' >> /root/.shrc \
|
|
||||||
&& echo 'export PATH="$PNPM_HOME:$PATH"' >> /root/.shrc \
|
|
||||||
&& export PNPM_HOME="/root/.local/share/pnpm" \
|
|
||||||
&& export PATH="$PNPM_HOME:$PATH" \
|
|
||||||
&& pnpm --version
|
|
||||||
|
|
||||||
# Persist the environment variables in Docker
|
|
||||||
ENV PNPM_HOME="/root/.local/share/pnpm"
|
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@ -71,8 +47,9 @@ RUN if [ "$RAILS_ENV" = "production" ]; then \
|
|||||||
else bundle install -j 4 -r 3; \
|
else bundle install -j 4 -r 3; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml .pnpm-file.cjs ./
|
||||||
RUN pnpm i
|
RUN pnpm config set store-dir /pnpm/store
|
||||||
|
RUN --mount=type=cache,target=/pnpm/store pnpm i --frozen-lockfile
|
||||||
|
|
||||||
COPY . /app
|
COPY . /app
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user