mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-01-23 02:36:05 +00:00
53 lines
1.5 KiB
Docker
53 lines
1.5 KiB
Docker
# Build stage
|
|
FROM --platform=$BUILDPLATFORM node:20 AS build
|
|
|
|
# Accept build arguments for environment variables with defaults
|
|
ARG UNSPLASH_KEY=DUMMY_UNSPLASH_KEY
|
|
ARG UNSPLASH_CLIENT_ID=DUMMY_UNSPLASH_CLIENT_ID
|
|
|
|
# Set as environment variables for the build
|
|
ENV UNSPLASH_KEY=$UNSPLASH_KEY
|
|
ENV UNSPLASH_CLIENT_ID=$UNSPLASH_CLIENT_ID
|
|
|
|
WORKDIR /app
|
|
|
|
# Install git and configure for HTTPS
|
|
# Use single apt-get command to avoid GPG issues
|
|
RUN apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
--no-install-recommends \
|
|
git \
|
|
ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& git config --global url."https://github.com/".insteadOf ssh://git@github.com/
|
|
|
|
# Copy and install dependencies
|
|
COPY package*.json ./
|
|
COPY packages/plugin-api/package*.json ./packages/plugin-api/
|
|
COPY packages/plugin-api/tsconfig.json ./packages/plugin-api/
|
|
COPY packages/plugin-api/src ./packages/plugin-api/src
|
|
COPY tsconfig.json ./
|
|
RUN npm ci --ignore-scripts || npm i --ignore-scripts
|
|
RUN npm run prepare
|
|
|
|
# Copy source and build
|
|
COPY . .
|
|
RUN npm run env && npm run lint && npm run buildFrontend:prodWeb
|
|
|
|
# Production stage
|
|
FROM nginx:1-alpine
|
|
|
|
ENV PORT=80
|
|
|
|
# Install runtime dependencies
|
|
RUN apk add --no-cache jq
|
|
|
|
# Copy built app and configs
|
|
COPY --from=build /app/dist/browser /usr/share/nginx/html
|
|
COPY ./nginx/default.conf.template /etc/nginx/templates/default.conf.template
|
|
COPY ./docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
|
|
|
EXPOSE $PORT
|
|
WORKDIR /usr/share/nginx/html
|
|
|
|
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|