Working Local Dev #7

Merged
mifi merged 5 commits from feature/working-local-dev into develop 2023-05-10 13:40:42 +00:00
10 changed files with 121 additions and 36 deletions

View File

@@ -151,7 +151,7 @@ trigger:
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: Deploy Pipeline name: Staging Deploy Pipeline
workspace: workspace:
path: /drone/grow path: /drone/grow
@@ -169,10 +169,10 @@ steps:
ROUTE_PREFIX: /auth ROUTE_PREFIX: /auth
PORT: 9001 PORT: 9001
commands: commands:
- docker compose -f docker-compose.staging_image.yml pull - docker compose -f docker-compose.staging-build.yml pull
- docker compose -f docker-compose.staging_image.yml build --no-cache - docker compose -f docker-compose.staging-build.yml build --no-cache
- docker compose -f docker-compose.staging_image.yml rm --stop - docker compose -f docker-compose.staging-build.yml rm --stop
- docker compose -f docker-compose.staging_image.yml up --wait - docker compose -f docker-compose.staging-build.yml up --wait
volumes: volumes:
- name: env-secrets - name: env-secrets
path: /drone/grow/staging.env path: /drone/grow/staging.env
@@ -211,6 +211,75 @@ volumes:
depends_on: depends_on:
- Test Pipeline - Test Pipeline
trigger:
branch:
- development
event:
- push
---
kind: pipeline
type: docker
name: Production Deploy Pipeline
workspace:
path: /drone/grow
clone:
disable: true
steps:
- name: Deploy Container
image: docker
privileged: true
environment:
CONTAINER_PREFIX: staging
HOST: area51.mifi.dev
ROUTE_PREFIX: /auth
PORT: 9001
commands:
- docker compose -f docker-compose.production-build.yml pull
- docker compose -f docker-compose.production-build.yml build --no-cache
- docker compose -f docker-compose.production-build.yml rm --stop
- docker compose -f docker-compose.production-build.yml up --wait
volumes:
- name: env-secrets
path: /drone/grow/production.env
- name: dockersock
path: /var/run/docker.sock
- name: dockerconfig
path: /drone/grow/.docker/config.json
- name: Send Status Notifications
image: plugins/webhook
privileged: true
settings:
urls: https://lab.mifi.dev/hooks/ccw34hdf7tgbjmzp96nptn938r
content_type: application/json
template: |
{
"icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png",
"text": "[{{ repo.name }} - Build # {{ build.number }}] Deploy {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}",
"username":"DroneBot"
}
when:
status:
- success
- failure
volumes:
- name: dockerconfig
host:
path: /volume1/docker/dockerconfig.json
- name: dockersock
host:
path: /var/run/docker.sock
- name: env-secrets
host:
path: /volume1/docker/beethoven/labs-auth/staging.env
depends_on:
- Test Pipeline
trigger: trigger:
event: event:
- promote - promote

View File

@@ -27,3 +27,5 @@ RESET_VALID_MINUTES=15
DEFAULT_TOKEN_DAYS=1 DEFAULT_TOKEN_DAYS=1
CONTAINER_PREFIX=dev CONTAINER_PREFIX=dev
SERVICE_NAME=auth-service
ENV=development

View File

@@ -1,4 +1,5 @@
FROM node:20-alpine AS build FROM node:20-alpine AS build
ENV NODE_ENV development
WORKDIR /home/node/app WORKDIR /home/node/app
COPY package*.json ./ COPY package*.json ./
COPY tsconfig.json ./ COPY tsconfig.json ./
@@ -14,5 +15,5 @@ WORKDIR /home/node/app
COPY package*.json ./ COPY package*.json ./
RUN yarn install --frozen-lockfile --production RUN yarn install --frozen-lockfile --production
COPY --from=0 /home/node/app/dist . COPY --from=0 /home/node/app/dist .
EXPOSE ${PORT} EXPOSE ${PORT:-9001}
CMD ["node","server/index.js"] CMD ["node","server/index.js"]

View File

@@ -1,2 +1,2 @@
# grow-api # @mifi/auth

View File

@@ -3,16 +3,13 @@ version: '3.8'
services: services:
auth-service_mongo: auth-service_mongo:
env_file: .env.dev env_file: .env.dev
build:
args:
- CONTAINER_PREFIX=${CONTAINER_PREFIX}
container_name: ${CONTAINER_PREFIX:-dev}-auth-service_mongo container_name: ${CONTAINER_PREFIX:-dev}-auth-service_mongo
ports: ports:
- 27017:27017 - 27017:27017
networks: networks:
- labs-net - backend
volumes: volumes:
- /var/tmp/labs:/data/db - auth-db:/data
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
restart: unless-stopped restart: unless-stopped
image: mongo:latest image: mongo:latest
@@ -21,10 +18,8 @@ services:
build: build:
context: . context: .
args: args:
- HOST=${HOST} - PORT
- PORT=${PORT} - ENV
- ROUTE_PREFIX=${ROUTE_PREFIX}
- CONTAINER_PREFIX=${CONTAINER_PREFIX}
container_name: ${CONTAINER_PREFIX:-dev}-auth-service container_name: ${CONTAINER_PREFIX:-dev}-auth-service
ports: ports:
- 9001:9001 - 9001:9001
@@ -32,6 +27,7 @@ services:
- DB_HOST=${CONTAINER_PREFIX:-dev}-auth-service_mongo - DB_HOST=${CONTAINER_PREFIX:-dev}-auth-service_mongo
networks: networks:
- labs-net - labs-net
- backend
restart: unless-stopped restart: unless-stopped
image: node:20-alpine image: node:20-alpine
depends_on: depends_on:
@@ -39,3 +35,7 @@ services:
networks: networks:
labs-net: labs-net:
name: labs-net name: labs-net
volumes:
auth-db:
external: true

View File

@@ -2,23 +2,27 @@ version: '3.8'
services: services:
auth-service_mongo: auth-service_mongo:
container_name: ${CONTAINER_PREFIX}-auth-service_mongo container_name: ${CONTAINER_PREFIX:-staging}-auth-service_mongo
env_file: env_file:
- staging.env - staging.env
networks: networks:
- docknet - docknet
volumes: volumes:
- '/volume1/docker/labs/auth/mongo:/data/db' - 'auth-db:/data'
# - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro - './mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro'
restart: unless-stopped restart: unless-stopped
image: mongo:latest image: mongo:latest
auth-service: auth-service:
env_file: env_file:
- staging.env - staging.env
build: . build:
container_name: ${CONTAINER_PREFIX}-auth-service context: .
args:
- PORT
- ENV
container_name: ${CONTAINER_PREFIX:-staging}-auth-service
environment: environment:
- DB_HOST=${CONTAINER_PREFIX}-auth-service_mongo - DB_HOST=${CONTAINER_PREFIX:-staging}-auth-service_mongo
labels: labels:
- 'traefik.enable=true' - 'traefik.enable=true'
- 'traefik.http.routers.grow.rule=Host(`${HOST}`) && Path(`${ROUTE_PREFIX}`)' - 'traefik.http.routers.grow.rule=Host(`${HOST}`) && Path(`${ROUTE_PREFIX}`)'
@@ -36,4 +40,8 @@ services:
networks: networks:
docknet: docknet:
name: docknet name: docknet
external: true external: true
volumes:
auth-db:
external: false

View File

@@ -2,22 +2,22 @@ version: '3.8'
services: services:
auth-service_mongo: auth-service_mongo:
container_name: ${CONTAINER_PREFIX}-auth-service_mongo container_name: ${CONTAINER_PREFIX:-staging}-auth-service_mongo
env_file: env_file:
- staging.env - staging.env
networks: networks:
- docknet - docknet
volumes: volumes:
- '/volume1/docker/labs/auth/mongo:/data/db' - auth-db:/data
# - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
restart: unless-stopped restart: unless-stopped
image: mongo:latest image: mongo:latest
auth-service: auth-service:
env_file: env_file:
- staging.env - staging.env
container_name: ${CONTAINER_PREFIX}-auth-service container_name: ${CONTAINER_PREFIX:-staging}-auth-service
environment: environment:
- DB_HOST=${CONTAINER_PREFIX}-auth-service_mongo - DB_HOST=${CONTAINER_PREFIX:-staging}-auth-service_mongo
labels: labels:
- 'traefik.enable=true' - 'traefik.enable=true'
- 'traefik.http.routers.grow.rule=Host(`${HOST}`) && Path(`${ROUTE_PREFIX}`)' - 'traefik.http.routers.grow.rule=Host(`${HOST}`) && Path(`${ROUTE_PREFIX}`)'
@@ -32,7 +32,12 @@ services:
image: git.mifi.dev/mifi/mifi/auth:latest image: git.mifi.dev/mifi/mifi/auth:latest
depends_on: depends_on:
- auth-service_mongo - auth-service_mongo
networks: networks:
docknet: docknet:
name: docknet name: docknet
external: true external: true
volumes:
auth-db:
external: false

View File

@@ -1,5 +1,5 @@
export const DB_HOST = process.env.DB_HOST || 'not_set'; export const DB_HOST = process.env.DB_HOST;
export const DB_PORT = process.env.DB_PORT || 27017; export const DB_PORT = process.env.DB_PORT || 27017;
export const DB_USERNAME = process.env.DB_USERNAME || 'not_set'; export const DB_USERNAME = process.env.DB_USERNAME;
export const DB_PASSWORD = process.env.DB_PASSWORD || 'not_set'; export const DB_PASSWORD = process.env.DB_PASSWORD;
export const DB_NAME = process.env.DB_NAME || 'not_set'; export const DB_NAME = process.env.DB_NAME;

View File

@@ -5,7 +5,7 @@ import { PORT } from '../constants/env';
connection.then( connection.then(
() => { () => {
app.listen(PORT); app.listen(PORT);
console.log('LISTENING', process.env); console.debug('Server up and listening', { env: process.env });
}, },
(err) => console.error('SERVER ERROR!', { err, env: process.env }), (err) => console.error('Could not reach database', { err, env: process.env }),
); );

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mifi/auth", "name": "@mifi/auth",
"version": "0.0.37", "version": "0.0.38",
"author": "mifi (Mike Fitzpatrick)", "author": "mifi (Mike Fitzpatrick)",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {