52 lines
958 B
Docker
52 lines
958 B
Docker
# ==
|
|
# Build the Vue app
|
|
# ==
|
|
|
|
# ARG NODE_VERSION=22.14.0-alpine
|
|
# ARG NGINX_VERSION=alpine3.22
|
|
|
|
# FROM node:${NODE_VERSION} as builder
|
|
|
|
# WORKDIR /app
|
|
|
|
# COPY package.json package-lock.json* ./
|
|
|
|
# RUN --mount=type=cache,target=/root/.npm npm ci
|
|
|
|
# COPY . .
|
|
|
|
# RUN npm run build
|
|
|
|
# ==
|
|
# Prepare NGINX for static files
|
|
# ==
|
|
|
|
# FROM nginxinc/nginx-unprivileged:${NGINX_VERSION} as runner
|
|
|
|
# COPY nginx.conf /etc/nginx/nginx.conf
|
|
|
|
|
|
FROM node:lts-alpine
|
|
|
|
# install simple http server for serving static content
|
|
RUN npm install -g http-server
|
|
|
|
# make the 'app' folder the current working directory
|
|
WORKDIR /app
|
|
|
|
# copy both 'package.json' and 'package-lock.json' (if available)
|
|
COPY package*.json ./
|
|
|
|
# install project dependencies
|
|
RUN npm install
|
|
|
|
# copy project files and folders to the current working directory (i.e. 'app' folder)
|
|
COPY . .
|
|
|
|
# build app for production with minification
|
|
RUN npm run build
|
|
|
|
EXPOSE 8080
|
|
EXPOSE 5173
|
|
CMD [ "http-server", "dist" ]
|