ci: Use self-hosted base images to avoid Docker Hub rate limits

Cached node:20, node:20-slim, and nginx:alpine to code.cannabrands.app.
No more Docker Hub dependency for builds.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Kelly
2025-12-09 13:07:21 -07:00
parent 38ba9021d1
commit 7e517b5801
5 changed files with 12 additions and 12 deletions

View File

@@ -6,7 +6,7 @@ steps:
# PR VALIDATION: Parallel type checks (PRs only) # PR VALIDATION: Parallel type checks (PRs only)
# =========================================== # ===========================================
typecheck-backend: typecheck-backend:
image: node:20 image: code.cannabrands.app/creationshop/node:20
commands: commands:
- cd backend - cd backend
- npm ci --prefer-offline - npm ci --prefer-offline
@@ -16,7 +16,7 @@ steps:
event: pull_request event: pull_request
typecheck-cannaiq: typecheck-cannaiq:
image: node:20 image: code.cannabrands.app/creationshop/node:20
commands: commands:
- cd cannaiq - cd cannaiq
- npm ci --prefer-offline - npm ci --prefer-offline
@@ -26,7 +26,7 @@ steps:
event: pull_request event: pull_request
typecheck-findadispo: typecheck-findadispo:
image: node:20 image: code.cannabrands.app/creationshop/node:20
commands: commands:
- cd findadispo/frontend - cd findadispo/frontend
- npm ci --prefer-offline - npm ci --prefer-offline
@@ -36,7 +36,7 @@ steps:
event: pull_request event: pull_request
typecheck-findagram: typecheck-findagram:
image: node:20 image: code.cannabrands.app/creationshop/node:20
commands: commands:
- cd findagram/frontend - cd findagram/frontend
- npm ci --prefer-offline - npm ci --prefer-offline

View File

@@ -1,6 +1,6 @@
# Build stage # Build stage
# Image: code.cannabrands.app/creationshop/dispensary-scraper # Image: code.cannabrands.app/creationshop/dispensary-scraper
FROM node:20-slim AS builder FROM code.cannabrands.app/creationshop/node:20-slim AS builder
WORKDIR /app WORKDIR /app
@@ -11,7 +11,7 @@ COPY . .
RUN npm run build RUN npm run build
# Production stage # Production stage
FROM node:20-slim FROM code.cannabrands.app/creationshop/node:20-slim
# Build arguments for version info # Build arguments for version info
ARG APP_BUILD_VERSION=dev ARG APP_BUILD_VERSION=dev

View File

@@ -1,5 +1,5 @@
# Build stage # Build stage
FROM node:20-slim AS builder FROM code.cannabrands.app/creationshop/node:20-slim AS builder
WORKDIR /app WORKDIR /app
@@ -20,7 +20,7 @@ COPY . .
RUN npm run build RUN npm run build
# Production stage # Production stage
FROM nginx:alpine FROM code.cannabrands.app/creationshop/nginx:alpine
# Copy built assets from builder stage # Copy built assets from builder stage
COPY --from=builder /app/dist /usr/share/nginx/html COPY --from=builder /app/dist /usr/share/nginx/html

View File

@@ -1,5 +1,5 @@
# Build stage # Build stage
FROM node:20-slim AS builder FROM code.cannabrands.app/creationshop/node:20-slim AS builder
WORKDIR /app WORKDIR /app
@@ -20,7 +20,7 @@ ENV REACT_APP_API_URL=https://cannaiq.co
RUN npm run build RUN npm run build
# Production stage # Production stage
FROM nginx:alpine FROM code.cannabrands.app/creationshop/nginx:alpine
# Copy built assets from builder stage (CRA outputs to /build) # Copy built assets from builder stage (CRA outputs to /build)
COPY --from=builder /app/build /usr/share/nginx/html COPY --from=builder /app/build /usr/share/nginx/html

View File

@@ -1,5 +1,5 @@
# Build stage # Build stage
FROM node:20-slim AS builder FROM code.cannabrands.app/creationshop/node:20-slim AS builder
WORKDIR /app WORKDIR /app
@@ -20,7 +20,7 @@ ENV REACT_APP_API_URL=https://cannaiq.co
RUN npm run build RUN npm run build
# Production stage # Production stage
FROM nginx:alpine FROM code.cannabrands.app/creationshop/nginx:alpine
# Copy built assets from builder stage (CRA outputs to /build) # Copy built assets from builder stage (CRA outputs to /build)
COPY --from=builder /app/build /usr/share/nginx/html COPY --from=builder /app/build /usr/share/nginx/html