Skip to content

Commit

Permalink
use docker watch for builds, syncs, and rebuilds
Browse files Browse the repository at this point in the history
  • Loading branch information
tmthecoder committed Feb 10, 2024
1 parent da1458d commit e9729e4
Show file tree
Hide file tree
Showing 8 changed files with 227 additions and 33 deletions.
8 changes: 4 additions & 4 deletions docker-compose-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ services:
target: api-gateway-dev
context: .
ports:
- '3000:3000'
- 3000
entrypoint: yarn ${GATEWAY_COMMAND-start:dev}
environment:
DB_SERVICE_ADDR: db-service
Expand All @@ -21,7 +21,7 @@ services:
target: auth-service-dev
context: .
ports:
- '50052:50052'
- 50052
entrypoint: yarn ${AUTH_COMMAND-start:dev}
environment:
AUTH_SERVICE_ADDR: auth-service
Expand All @@ -37,7 +37,7 @@ services:
target: db-service-dev
context: .
ports:
- '50053:50053'
- 50053
entrypoint: /bin/sh -c "DB_COMMAND=${DB_COMMAND-start:dev} RUN_MODE=${RUN_MODE-dev} ./entrypoint.sh"
environment:
AUTH_SERVICE_ADDR: auth-service
Expand All @@ -53,7 +53,7 @@ services:
image: postgres
restart: always
ports:
- '5432:5432'
- 5432
environment:
POSTGRES_PASSWORD: password
POSTGRES_USER: user
Expand Down
42 changes: 33 additions & 9 deletions docker/docker-compose-live-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,49 @@ services:
extends:
file: docker-compose-dev.yml
service: api-gateway
volumes:
- ./packages/api-gateway:/app/packages/api-gateway
- /app/packages/api-gateway/node_modules
develop:
watch:
- action: sync
path: ./packages/api-gateway
target: /app/packages/api-gateway
ignore:
- ./packages/api-gateway/node_modules
- action: rebuild
path: ./package.json
- action: rebuild
path: ./packages/api-gateway/package.json

auth-service:
extends:
file: docker-compose-dev.yml
service: auth-service
volumes:
- ./packages/auth-service:/app/packages/auth-service
- /app/packages/auth-service/node_modules
develop:
watch:
- action: sync
path: ./packages/auth-service
target: /app/packages/auth-service
ignore:
- ./packages/auth-service/node_modules
- action: rebuild
path: ./package.json
- action: rebuild
path: ./packages/auth-service/package.json

db-service:
extends:
file: docker-compose-dev.yml
service: db-service
volumes:
- ./packages/db-service:/app/packages/db-service
- /app/packages/db-service/node_modules
develop:
watch:
- action: sync
path: ./packages/db-service
target: /app/packages/db-service
ignore:
- ./packages/db-service/node_modules
- action: rebuild
path: ./package.json
- action: rebuild
path: ./packages/db-service/package.json

db:
extends:
Expand Down
45 changes: 36 additions & 9 deletions docker/docker-compose-live-proto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,52 @@ services:
extends:
file: docker-compose-dev.yml
service: api-gateway
volumes:
- ./packages/proto:/app/packages/proto
- ./packages/proto:/app/packages/node_modules/juno-proto
develop:
watch:
- action: sync
path: ./packages/proto
target: /app/packages/proto
ignore:
- ./packages/proto/node_modules
- action: sync
path: ./packages/proto
target: /app/packages/node_modules/juno-proto
ignore:
- ./packages/proto/node_modules

auth-service:
extends:
file: docker-compose-dev.yml
service: auth-service
volumes:
- ./packages/proto:/app/packages/proto
- ./packages/proto:/app/packages/node_modules/juno-proto
develop:
watch:
- action: sync
path: ./packages/proto
target: /app/packages/proto
ignore:
- ./packages/proto/node_modules
- action: sync
path: ./packages/proto
target: /app/packages/node_modules/juno-proto
ignore:
- ./packages/proto/node_modules

db-service:
extends:
file: docker-compose-dev.yml
service: db-service
volumes:
- ./packages/proto:/app/packages/proto
- ./packages/proto:/app/packages/node_modules/juno-proto
develop:
watch:
- action: sync
path: ./packages/proto
target: /app/packages/proto
ignore:
- ./packages/proto/node_modules
- action: sync
path: ./packages/proto
target: /app/packages/node_modules/juno-proto
ignore:
- ./packages/proto/node_modules

db:
extends:
Expand Down
19 changes: 13 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,30 @@
],
"scripts": {
"start:dev": "docker-compose -f docker-compose-dev.yml up",
"start:dev:live-packages": "docker-compose -f docker-compose-dev.yml -f docker/docker-compose-live-packages.yml up",
"start:dev:live-proto": "docker-compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml up",
"start:dev:live-all": "docker-compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml -f docker/docker-compose-live-packages.yml up",
"start:dev:watch-packages": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-packages.yml watch --no-up",
"start:dev:watch-proto": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml watch --no-up",
"start:dev:watch-all": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml -f docker/docker-compose-live-packages.yml watch --no-up",
"start:dev:up-packages": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-packages.yml up",
"start:dev:up-proto": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml up",
"start:dev:up-all": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml -f docker/docker-compose-live-packages.yml up",
"start:dev:live-packages": "concurrently -k \"yarn start:dev:watch-packages\" \"yarn start:dev:up-packages\"",
"start:dev:live-proto": "concurrently -k \"yarn start:dev:watch-proto\" \"yarn start:dev:up-proto\"",
"start:dev:live-all": "concurrently -k -P --success=\"last\" \"yarn start:dev:watch-all\" \"yarn start:dev:up-all {@}\" -- ",
"format:check": "yarn prettier --check .",
"format:write": "yarn prettier --write .",
"tsc": "nx run-many --target=tsc",
"lint": "nx run-many --target=lint",
"gen-proto": "yarn workspace juno-proto install && yarn workspace juno-proto build",
"preinstall": "yarn gen-proto",
"test:e2e:api-gateway-live": "GATEWAY_COMMAND=test:e2e RUN_MODE=test yarn start:dev:live-all --exit-code-from api-gateway",
"test:e2e:auth-service-live": "AUTH_COMMAND=test:e2e RUN_MODE=test yarn start:dev:live-all --exit-code-from auth-service",
"test:e2e:db-service-live": "DB_COMMAND=test:e2e RUN_MODE=test yarn start:dev:live-all --exit-code-from db-service",
"test:e2e:api-gateway-live": "GATEWAY_COMMAND=test:e2e:watch RUN_MODE=test yarn start:dev:live-all --exit-code-from api-gateway",
"test:e2e:auth-service-live": "AUTH_COMMAND=test:e2e:watch RUN_MODE=test yarn start:dev:live-all --exit-code-from auth-service",
"test:e2e:db-service-live": "DB_COMMAND=test:e2e:watch RUN_MODE=test yarn start:dev:live-all --exit-code-from db-service",
"test:e2e:api-gateway": "GATEWAY_COMMAND=test:e2e RUN_MODE=test yarn start:dev --exit-code-from api-gateway",
"test:e2e:auth-service": "AUTH_COMMAND=test:e2e RUN_MODE=test yarn start:dev --exit-code-from auth-service",
"test:e2e:db-service": "DB_COMMAND=test:e2e RUN_MODE=test yarn start:dev --exit-code-from db-service"
},
"devDependencies": {
"concurrently": "^8.2.2",
"nx": "17.0.0",
"prettier": "^3.0.3",
"prettier-plugin-organize-imports": "^3.2.3",
Expand Down
1 change: 1 addition & 0 deletions packages/api-gateway/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json --runInBand",
"test:e2e:watch": "jest --config ./test/jest-e2e.json --runInBand --watch",
"tsc": "tsc"
},
"dependencies": {
Expand Down
3 changes: 3 additions & 0 deletions packages/auth-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json --runInBand",
"test:e2e:watch": "jest --config ./test/jest-e2e.json --runInBand --watch",
"tsc": "tsc"
},
"dependencies": {
Expand All @@ -27,6 +28,7 @@
"@nestjs/core": "^10.0.0",
"@nestjs/microservices": "^10.2.7",
"@nestjs/platform-express": "^10.0.0",
"jsonwebtoken": "^9.0.2",
"juno-proto": "file:../proto",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.8.1"
Expand All @@ -38,6 +40,7 @@
"@nestjs/testing": "^10.0.0",
"@types/express": "^4.17.17",
"@types/jest": "^29.5.2",
"@types/jsonwebtoken": "^9.0.5",
"@types/node": "^20.3.1",
"@types/supertest": "^2.0.12",
"@typescript-eslint/eslint-plugin": "^6.0.0",
Expand Down
3 changes: 2 additions & 1 deletion packages/db-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json --runInBand"
"test:e2e": "jest --config ./test/jest-e2e.json --runInBand",
"test:e2e:watch": "jest --config ./test/jest-e2e.json --runInBand --watch"
},
"dependencies": {
"@grpc/grpc-js": "^1.9.7",
Expand Down
Loading

0 comments on commit e9729e4

Please sign in to comment.