From 5ac0b36255e7ec7f23b8e326d33d93ad2a413550 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Thu, 16 Dec 2021 15:55:46 +0530 Subject: [PATCH] update dockerfile to make config --- Dockerfile | 21 +++++++++++++-------- Makefile | 14 +++++++++++--- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 09c62d79..4349487d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,21 @@ FROM node:16.0.0 as frontend +RUN set -ex; \ + apt-get update; \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -y --no-install-recommends make +RUN mkdir -p /src/docs/openapi/ COPY package.json yarn.lock /src/ +COPY docs/openapi/package.json docs/openapi/yarn.lock /src/docs/openapi/ +WORKDIR /src +RUN yarn install && cd docs/openapi && yarn install WORKDIR /src -RUN yarn install -WORKDIR / RUN mkdir -p /src/static/cache/bundle COPY tsconfig.json webpack.config.js jest.config.ts /src/ -COPY templates /src/templates -WORKDIR /src -RUN yarn build +COPY templates /src/templates/ +COPY docs/openapi /src/docs/openapi/ +COPY Makefile /src/ COPY scripts /src/scripts -RUN /src/scripts/librejs.sh -RUN /src/scripts/cachebust.sh +RUN make frontend FROM rust:latest as rust WORKDIR /src @@ -25,7 +30,7 @@ COPY src/settings.rs /src/src/settings.rs RUN cargo --version RUN cargo build --release COPY . /src -COPY --from=frontend /src/static/cache/bundle /src/static/cache/bundle +COPY --from=frontend /src/static/cache/bundle/ /src/static/cache/bundle/ RUN cargo build --release FROM debian:bullseye diff --git a/Makefile b/Makefile index 5fb0a196..011798a1 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,11 @@ BUNDLE = static/cache/bundle OPENAPI = docs/openapi CLEAN_UP = $(BUNDLE) src/cache_buster_data.json assets +define frontend_env ## install frontend deps + yarn install + cd docs/openapi && yarn install +endef + default: frontend ## Build app in debug mode cargo build @@ -26,10 +31,13 @@ docker-publish: docker ## Build and publish Docker image env: ## Setup development environtment cargo fetch - yarn install - cd docs/openapi && yarn install + $(call frontend_env) -frontend: env ## Build frontend +frontend-env: ## Install frontend deps + $(call frontend_env) + +frontend: ## Build frontend + $(call frontend_env) cd $(OPENAPI) && yarn build yarn install @-rm -rf $(BUNDLE)