mirror of
https://github.com/fleetbase/fleetbase.git
synced 2025-12-19 22:27:22 +00:00
54 lines
1.3 KiB
Docker
54 lines
1.3 KiB
Docker
# ---- Build Stage ----
|
|
FROM node:18.15.0-alpine as builder
|
|
|
|
# Set the working directory in the container to /console
|
|
WORKDIR /console
|
|
|
|
# Create the pnpm directory and set the PNPM_HOME environment variable
|
|
RUN mkdir -p ~/.pnpm
|
|
ENV PNPM_HOME=/root/.pnpm
|
|
|
|
# Set environment
|
|
ARG ENVIRONMENT=production
|
|
|
|
# Add the pnpm global bin to the PATH
|
|
ENV PATH=/root/.pnpm/bin:$PATH
|
|
|
|
# Copy pnpm-lock.yaml (or package.json) into the directory /console in the container
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
# Copy over .npmrc if applicable
|
|
COPY .npmr[c] ./
|
|
|
|
# Install global dependencies
|
|
RUN npm install -g ember-cli pnpm
|
|
|
|
# Install git
|
|
RUN apk update && apk add git openssh-client
|
|
|
|
# Trust GitHub's RSA host key
|
|
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
|
|
|
|
# Install app dependencies
|
|
RUN pnpm install
|
|
|
|
# Copy the console directory contents into the container at /console
|
|
COPY . .
|
|
|
|
# Build the application
|
|
RUN pnpm build --environment $ENVIRONMENT
|
|
|
|
# ---- Serve Stage ----
|
|
FROM nginx:alpine
|
|
|
|
# Copy the built app to our served directory
|
|
COPY --from=builder /console/dist /usr/share/nginx/html
|
|
|
|
# Expose the port nginx is bound to
|
|
EXPOSE 4200
|
|
|
|
# Use custom nginx.conf
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
# Start Nginx server
|
|
CMD ["nginx", "-g", "daemon off;"] |