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
COPY ./package.json ./
COPY package.json .
COPY package-lock.json .
RUN npm install
COPY . .
RUN npm run build
FROM node:alpine
FROM node:14.3.0-alpine
WORKDIR /app
COPY --from=builder /app ./
COPY --from=builder /app .
EXPOSE 3000
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:
build:
context: ./frontend
dockerfile: Dockerfile
dockerfile: Dockerfile.dev
networks:
- proxy
env_file: .env
labels:
- traefik.enable=true
# 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
ports:
- 5000:5000
backend:
# image: docker.humenius.me/humenius/ts-onlinetime-ranks-backend:latest
build:
context: ./backend
dockerfile: Dockerfile
dockerfile: Dockerfile.dev
networks:
- proxy
env_file: .env
labels:
- traefik.enable=true
# 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
ports:
- 5001:3000
networks:
proxy:

View File

@@ -2,44 +2,47 @@ version: '3.7'
services:
frontend:
image: docker.humenius.me/humenius/ts-onlinetime-ranks-frontend:latest
build:
context: ./frontend
dockerfile: Dockerfile
networks:
- proxy
env_file: .env
labels:
- traefik.enable=true
- traefik.http.services.tsotr-frontend.loadbalancer.server.port=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
# HTTPS
- 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:
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:
- proxy
env_file: .env
labels:
- traefik.enable=true
- traefik.http.services.tsotr-backend.loadbalancer.server.port=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
# HTTPS
- 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:
proxy:

View File

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

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
COPY . .
CMD ["yarn", "start"]