1
0
Просмотр исходного кода

create docker sample environment

Aneurin Barker Snook 1 год назад
Родитель
Сommit
1f43b1c782
6 измененных файлов с 59 добавлено и 2 удалено
  1. 7 0
      .dockerignore
  2. 1 0
      .gitignore
  3. 38 0
      Dockerfile
  4. 10 0
      docker-compose.herda.yml
  5. 1 2
      package.json
  6. 2 0
      web/.dockerignore

+ 7 - 0
.dockerignore

@@ -0,0 +1,7 @@
+.dockerignore
+.eslint*
+.gitignore
+docker-compose*.yml
+Dockerfile
+node_modules
+out

+ 1 - 0
.gitignore

@@ -1,4 +1,5 @@
 /public/
 /out/
 node_modules/
+.docker.env
 .env

+ 38 - 0
Dockerfile

@@ -0,0 +1,38 @@
+FROM node:20 AS build_web
+
+WORKDIR /web
+COPY ./web .
+
+RUN npm ci
+
+ARG VITE_API_URL=http://localhost:5001
+ARG VITE_API_TIMEOUT=10000
+ARG VITE_DOCUMENT_TITLE_SUFFIX=Herda
+ARG VITE_LOCAL_STORAGE_PREFIX=herda-
+
+ENV VITE_API_URL $VITE_API_URL
+ENV VITE_API_TIMEOUT $VITE_API_TIMEOUT
+ENV VITE_DOCUMENT_TITLE_SUFFIX $VITE_DOCUMENT_TITLE_SUFFIX
+ENV VITE_LOCAL_STORAGE_PREFIX $VITE_LOCAL_STORAGE_PREFIX
+
+RUN npm run build
+
+FROM node:20 AS build_server
+
+WORKDIR /app
+COPY ./src ./src
+COPY package-lock.json package.json tsconfig.json ./
+
+RUN npm ci
+RUN npm run build
+
+FROM node:20
+
+WORKDIR /app
+
+COPY LICENSE.md package-lock.json package.json ./
+COPY --from=build_server /app/out ./out
+COPY --from=build_server /app/node_modules ./node_modules
+COPY --from=build_web /web/dist ./out/public
+
+CMD ["npm", "start"]

+ 10 - 0
docker-compose.herda.yml

@@ -0,0 +1,10 @@
+version: "3"
+
+services:
+  herda:
+    image: herda:latest
+    build:
+      context: .
+    ports:
+      - "5001:5001"
+    env_file: .docker.env

+ 1 - 2
package.json

@@ -5,10 +5,9 @@
   "description": "Keep on top of it all with Herda",
   "scripts": {
     "build": "tsc",
-    "build-statics": "cd web && npm run build -- --outDir ../public",
     "dev": "nodemon --watch src -e ts --exec 'ts-node src/index.ts'",
     "lint": "eslint --ext .ts src",
-    "start": "node out/index.js",
+    "start": "node out/src/index.js",
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   "keywords": [],

+ 2 - 0
web/.dockerignore

@@ -0,0 +1,2 @@
+.env
+.env.*