Fix docker build (#2348)
* .eslintrc.json is required to build using react-scripts * Remove the extra "deps" step This step can be done as part of the build (faster and more reliable). * Add a GitHub Actions to build the Docker image Make sure that "docker build" is working on every pull request before landing on master. * Update package-lock.json * Add .prettierrc in the Docker image to avoid warnings in the build step * Revert "Update package-lock.json" This reverts commit 7ef2eaadfae610771987bc8155670b895c139e7b. * Make sure that the 'node_modules' layer can be cached if package and package-lock.json didn't changed
This commit is contained in:
parent
a05679b3c5
commit
5b63371c14
@ -2,6 +2,8 @@
|
|||||||
!public/
|
!public/
|
||||||
!src/
|
!src/
|
||||||
!.npmrc
|
!.npmrc
|
||||||
|
!.eslintrc.json
|
||||||
|
!.prettierrc
|
||||||
!package-lock.json
|
!package-lock.json
|
||||||
!package.json
|
!package.json
|
||||||
!tsconfig.json
|
!tsconfig.json
|
||||||
|
15
.github/workflows/build-docker.yml
vendored
Normal file
15
.github/workflows/build-docker.yml
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
name: Build Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- run: docker build -t excalidraw .
|
25
Dockerfile
25
Dockerfile
@ -1,25 +1,14 @@
|
|||||||
FROM node:14-alpine AS deps
|
|
||||||
|
|
||||||
ARG REACT_APP_INCLUDE_GTAG=false
|
|
||||||
|
|
||||||
RUN mkdir /opt/node_app && chown node:node /opt/node_app
|
|
||||||
WORKDIR /opt/node_app
|
|
||||||
|
|
||||||
USER node
|
|
||||||
|
|
||||||
COPY package.json package-lock.json ./
|
|
||||||
RUN npm install --no-optional && npm cache clean --force
|
|
||||||
ENV PATH /opt/node_app/node_modules/.bin:$PATH
|
|
||||||
|
|
||||||
WORKDIR /opt/node_app
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
FROM node:14-alpine AS build
|
FROM node:14-alpine AS build
|
||||||
|
|
||||||
|
WORKDIR /opt/node_app
|
||||||
|
|
||||||
|
COPY package.json package-lock.json ./
|
||||||
|
RUN npm i --no-optional
|
||||||
|
|
||||||
|
ARG REACT_APP_INCLUDE_GTAG=false
|
||||||
ARG NODE_ENV=production
|
ARG NODE_ENV=production
|
||||||
|
|
||||||
WORKDIR /opt/node_app
|
COPY . .
|
||||||
COPY --from=deps /opt/node_app .
|
|
||||||
RUN npm run build:app:docker
|
RUN npm run build:app:docker
|
||||||
|
|
||||||
FROM nginx:1.17-alpine
|
FROM nginx:1.17-alpine
|
||||||
|
Loading…
x
Reference in New Issue
Block a user