tacticalrmm/.devcontainer/docker-compose.yml

231 lines
5.0 KiB
YAML
Raw Normal View History

2021-01-02 05:05:37 +00:00
version: '3.4'
services:
api-dev:
image: api-dev
2021-02-09 03:17:06 +00:00
restart: always
2021-01-02 05:05:37 +00:00
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-api"]
2021-01-16 16:20:24 +00:00
environment:
API_PORT: ${API_PORT}
2021-01-02 05:05:37 +00:00
ports:
2021-01-16 16:20:24 +00:00
- "8000:${API_PORT}"
2021-01-02 05:05:37 +00:00
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
networks:
dev:
aliases:
- tactical-backend
app-dev:
image: node:14-alpine
2021-02-09 03:17:06 +00:00
restart: always
command: /bin/sh -c "npm install npm@latest -g && npm install && npm run serve -- --host 0.0.0.0 --port ${APP_PORT}"
2021-01-02 05:05:37 +00:00
working_dir: /workspace/web
volumes:
- ..:/workspace:cached
2021-01-16 16:20:24 +00:00
ports:
- "8080:${APP_PORT}"
2021-01-02 05:05:37 +00:00
networks:
dev:
aliases:
- tactical-frontend
# nats
nats-dev:
image: ${IMAGE_REPO}tactical-nats:${VERSION}
restart: always
2021-01-16 02:25:32 +00:00
environment:
API_HOST: ${API_HOST}
2021-01-16 16:20:24 +00:00
API_PORT: ${API_PORT}
2021-01-16 02:05:49 +00:00
DEV: 1
2021-01-02 05:05:37 +00:00
ports:
- "4222:4222"
volumes:
- tactical-data-dev:/opt/tactical
2021-01-16 02:05:49 +00:00
- ..:/workspace:cached
2021-01-02 05:05:37 +00:00
networks:
dev:
aliases:
- ${API_HOST}
- tactical-nats
# meshcentral container
meshcentral-dev:
image: ${IMAGE_REPO}tactical-meshcentral:${VERSION}
restart: always
environment:
MESH_HOST: ${MESH_HOST}
MESH_USER: ${MESH_USER}
MESH_PASS: ${MESH_PASS}
MONGODB_USER: ${MONGODB_USER}
MONGODB_PASSWORD: ${MONGODB_PASSWORD}
NGINX_HOST_IP: 172.21.0.20
networks:
dev:
aliases:
- tactical-meshcentral
- ${MESH_HOST}
volumes:
- tactical-data-dev:/opt/tactical
- mesh-data-dev:/home/node/app/meshcentral-data
depends_on:
- mongodb-dev
# mongodb container for meshcentral
mongodb-dev:
image: mongo:4.4
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGODB_USER}
MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD}
MONGO_INITDB_DATABASE: meshcentral
networks:
dev:
aliases:
- tactical-mongodb
volumes:
- mongo-dev-data:/data/db
# postgres database for api service
postgres-dev:
image: postgres:13-alpine
restart: always
environment:
POSTGRES_DB: tacticalrmm
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASS}
volumes:
- postgres-data-dev:/var/lib/postgresql/data
networks:
dev:
aliases:
- tactical-postgres
# redis container for celery tasks
redis-dev:
restart: always
image: redis:6.0-alpine
networks:
dev:
aliases:
- tactical-redis
init-dev:
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
restart: on-failure
command: ["tactical-init-dev"]
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASS: ${POSTGRES_PASS}
APP_HOST: ${APP_HOST}
API_HOST: ${API_HOST}
MESH_HOST: ${MESH_HOST}
2021-01-03 20:15:43 +00:00
MESH_USER: ${MESH_USER}
2021-01-02 05:05:37 +00:00
TRMM_USER: ${TRMM_USER}
TRMM_PASS: ${TRMM_PASS}
2021-01-16 16:20:24 +00:00
HTTP_PROTOCOL: ${HTTP_PROTOCOL}
APP_PORT: ${APP_PORT}
2021-01-02 05:05:37 +00:00
depends_on:
- postgres-dev
- meshcentral-dev
networks:
- dev
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
# container for celery worker service
celery-dev:
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-celery-dev"]
restart: always
networks:
- dev
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
depends_on:
- postgres-dev
- redis-dev
# container for celery beat service
celerybeat-dev:
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-celerybeat-dev"]
restart: always
networks:
- dev
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
depends_on:
- postgres-dev
- redis-dev
# container for celery beat service
websockets-dev:
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-websockets-dev"]
restart: always
networks:
dev:
aliases:
- tactical-websockets
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
depends_on:
- postgres-dev
- redis-dev
2021-01-02 05:05:37 +00:00
nginx-dev:
# container for tactical reverse proxy
image: ${IMAGE_REPO}tactical-nginx:${VERSION}
restart: always
environment:
APP_HOST: ${APP_HOST}
API_HOST: ${API_HOST}
MESH_HOST: ${MESH_HOST}
CERT_PUB_KEY: ${CERT_PUB_KEY}
CERT_PRIV_KEY: ${CERT_PRIV_KEY}
2021-01-16 16:20:24 +00:00
APP_PORT: ${APP_PORT}
API_PORT: ${API_PORT}
2021-01-02 05:05:37 +00:00
networks:
dev:
ipv4_address: 172.21.0.20
ports:
- "80:80"
- "443:443"
volumes:
- tactical-data-dev:/opt/tactical
volumes:
tactical-data-dev:
postgres-data-dev:
mongo-dev-data:
mesh-data-dev:
networks:
dev:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.21.0.0/24