Add Dockerfile.dev for backend, migrate frontend image to "serve" and change both docker-compose.ymls
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2020-06-02 09:28:35 +02:00
parent 85677f08e2
commit ffb91bb380
7 changed files with 51 additions and 61 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/**/.idea
/**/node_modules

View File

@@ -1,13 +1,14 @@
FROM node:alpine AS builder FROM node:14.3.0-alpine AS builder
WORKDIR /app WORKDIR /app
COPY ./package.json ./ COPY package.json .
COPY package-lock.json .
RUN npm install RUN npm install
COPY . . COPY . .
RUN npm run build RUN npm run build
FROM node:alpine FROM node:14.3.0-alpine
WORKDIR /app WORKDIR /app
COPY --from=builder /app ./ COPY --from=builder /app .
EXPOSE 3000 EXPOSE 3000
CMD ["npm", "run", "start:prod"] CMD ["npm", "run", "start:prod"]

12
backend/Dockerfile.dev Normal file
View File

@@ -0,0 +1,12 @@
FROM node:14.3.0-alpine AS builder
WORKDIR /app
ENV ENVIRONMENT dev
COPY package.json .
COPY package-lock.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "run", "start:${ENVIRONMENT}"]

View File

@@ -4,49 +4,22 @@ services:
frontend: frontend:
build: build:
context: ./frontend context: ./frontend
dockerfile: Dockerfile dockerfile: Dockerfile.dev
networks: networks:
- proxy - proxy
env_file: .env env_file: .env
labels: ports:
- traefik.enable=true - 5000:5000
# HTTP + Redirect
- traefik.http.routers.tsotr-frontend.entrypoints=web
- traefik.http.routers.tsotr-frontend.rule=Host(`tsotr.humenius.me`)
- traefik.http.routers.tsotr-frontend.middlewares=redirect@file
# HTTPS + Port + network
- traefik.http.routers.tsotr-frontend-secure.entrypoints=web-secure
- traefik.http.routers.tsotr-frontend-secure.rule=Host(`tsotr.humenius.me`)
- traefik.http.routers.tsotr-frontend-secure.tls=true
- traefik.http.routers.tsotr-frontend-secure.tls.certresolver=letsencrypt
- traefik.http.services.tsotr-frontend.loadbalancer.server.port=80
- traefik.docker.network=proxy
backend: backend:
# image: docker.humenius.me/humenius/ts-onlinetime-ranks-backend:latest
build: build:
context: ./backend context: ./backend
dockerfile: Dockerfile dockerfile: Dockerfile.dev
networks: networks:
- proxy - proxy
env_file: .env env_file: .env
labels: ports:
- traefik.enable=true - 5001:3000
# HTTP + Redirect
- traefik.http.routers.tsotr-backend.entrypoints=web
- traefik.http.routers.tsotr-backend.rule=Host(`api.tsotr.humenius.me`)
- traefik.http.routers.tsotr-backend.middlewares=redirect@file
# HTTPS + Port + network
- traefik.http.routers.tsotr-backend-secure.entrypoints=web-secure
- traefik.http.routers.tsotr-backend-secure.rule=Host(`api.tsotr.humenius.me`)
- traefik.http.routers.tsotr-backend-secure.tls=true
- traefik.http.routers.tsotr-backend-secure.tls.certresolver=letsencrypt
- traefik.http.services.tsotr-backend.loadbalancer.server.port=3000
- traefik.docker.network=proxy
networks: networks:
proxy: proxy:

View File

@@ -2,44 +2,47 @@ version: '3.7'
services: services:
frontend: frontend:
image: docker.humenius.me/humenius/ts-onlinetime-ranks-frontend:latest build:
context: ./frontend
dockerfile: Dockerfile
networks: networks:
- proxy - proxy
env_file: .env
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.services.tsotr-frontend.loadbalancer.server.port=5000
# HTTP + Redirect # HTTP + Redirect
- traefik.http.routers.tsotr-frontend.entrypoints=web - traefik.http.routers.tsotr-frontend.entrypoints=web
- traefik.http.routers.tsotr-frontend.rule=Host(`tsotr.humenius.me`) - traefik.http.routers.tsotr-frontend.rule=Host(`tsotr.humenius.me`)
- traefik.http.routers.tsotr-frontend.middlewares=redirect@file - traefik.http.routers.tsotr-frontend.middlewares=redirect@file
# HTTPS + Port + network # HTTPS
- traefik.http.routers.tsotr-frontend-secure.entrypoints=web-secure - traefik.http.routers.tsotr-frontend-secure.entrypoints=web-secure
- traefik.http.routers.tsotr-frontend-secure.rule=Host(`tsotr.humenius.me`) - traefik.http.routers.tsotr-frontend-secure.rule=Host(`tsotr.humenius.me`)
- traefik.http.routers.tsotr-frontend-secure.tls=true
- traefik.http.routers.tsotr-frontend-secure.tls.certresolver=letsencrypt - traefik.http.routers.tsotr-frontend-secure.tls.certresolver=letsencrypt
- traefik.http.services.tsotr-frontend.loadbalancer.server.port=80
- traefik.docker.network=proxy
backend: backend:
image: docker.humenius.me/humenius/ts-onlinetime-ranks-backend:latest # image: docker.humenius.me/humenius/ts-onlinetime-ranks-backend:latest
build:
context: ./backend
dockerfile: Dockerfile
networks: networks:
- proxy - proxy
env_file: .env
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.services.tsotr-backend.loadbalancer.server.port=3000
# HTTP + Redirect # HTTP + Redirect
- traefik.http.routers.tsotr-backend.entrypoints=web - traefik.http.routers.tsotr-backend.entrypoints=web
- traefik.http.routers.tsotr-backend.rule=Host(`api.tsotr.humenius.me`) - traefik.http.routers.tsotr-backend.rule=Host(`api.tsotr.humenius.me`)
- traefik.http.routers.tsotr-backend.middlewares=redirect@file - traefik.http.routers.tsotr-backend.middlewares=redirect@file
# HTTPS + Port + network # HTTPS
- traefik.http.routers.tsotr-backend-secure.entrypoints=web-secure - traefik.http.routers.tsotr-backend-secure.entrypoints=web-secure
- traefik.http.routers.tsotr-backend-secure.rule=Host(`api.tsotr.humenius.me`) - traefik.http.routers.tsotr-backend-secure.rule=Host(`api.tsotr.humenius.me`)
- traefik.http.routers.tsotr-backend-secure.tls=true
- traefik.http.routers.tsotr-backend-secure.tls.certresolver=letsencrypt - traefik.http.routers.tsotr-backend-secure.tls.certresolver=letsencrypt
- traefik.http.services.tsotr-backend.loadbalancer.server.port=3000
- traefik.docker.network=proxy
networks: networks:
proxy: proxy:

View File

@@ -1,15 +1,15 @@
FROM node:alpine as builder FROM node:14.3.0-alpine as builder
WORKDIR '/app' WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY ./package.json ./ COPY ./package.json ./
RUN yarn RUN yarn
COPY . . COPY . .
RUN yarn build RUN yarn build
FROM nginx:alpine FROM node:14.3.0-alpine
LABEL maintainer="Kevin Reis <contact@humenius.me>" WORKDIR /app
COPY --from=builder /app/build .
RUN yarn global add serve
COPY --from=builder /app/build /usr/share/nginx/html EXPOSE 5000
COPY nginx/nginx.conf /etc/nginx/conf.d CMD ["serve", "-s", ""]
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

View File

@@ -1,10 +1,9 @@
FROM node:alpine FROM node:14.3.0-alpine
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
WORKDIR '/app' COPY package.json ./
COPY package.json .
RUN yarn RUN yarn
COPY . . COPY . .
CMD ["yarn", "start"] CMD ["yarn", "start"]