-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
38 lines (33 loc) · 1.01 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# docker run -it node:lts-alpine /bin/bash
ARG SERVER_VERSION_ARG=latest
# ---- Base Node ----
FROM beshkenadze/fdp-server:${SERVER_VERSION_ARG} AS base
# Preparing
RUN mkdir -p /var/app/src && chown -R node /var/app/src
# Set working directory
WORKDIR /var/app/src
#
# ---- Dependencies (with packages) ----
FROM base AS dependencies
ARG LOCK_FILE_ARG=yarn.lock
ARG PACKAGE_MANAGER_ARG="yarn"
ARG INSTALL_CMD_ARG="install"
# Copy project file
COPY --chown=node app/package.json package.json
COPY --chown=node app/${LOCK_FILE_ARG} ${LOCK_FILE_ARG}
RUN ${PACKAGE_MANAGER_ARG} ${INSTALL_CMD_ARG}
#
# ---- Test & Build ----
# run linters, setup and tests
FROM dependencies AS build_web_app
ARG PACKAGE_MANAGER_ARG="yarn"
ARG BUILD_CMD_ARG="build"
COPY --chown=node app /var/app/src
# Resolve the web-app dependencies
RUN ${PACKAGE_MANAGER_ARG} run ${BUILD_CMD_ARG}
#
# ---- Release Web App ----
FROM base AS release_web_app
ARG DIST_DIR_ARG=dist
# Copy Web App
COPY --from=build_web_app /var/app/src/${DIST_DIR_ARG} /var/app/public