Untitled

 avatar
unknown
plain_text
2 years ago
5.1 kB
6
Indexable
version: "3"

networks:
  web:
    external: true

services:
  coincms-web:
    image: traefik:1.5.2-alpine
    container_name: coincms-traefik
    restart: always
    networks:
      - web
    ports:
      - 80:80
      - 8080:8080
      - 9229:9229 # node debugger port
    links:
      - coincms-frontend
    depends_on:
      - coincms-frontend
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./.docker/traefik/traefik.dev.toml:/traefik.toml
      # - ./.docker/traefik/wildcard.domain.dev.crt:/etc/ssl/certs/wildcard.domain.dev.crt
      # - ./.docker/traefik/wildcard.domain.dev.key:/etc/ssl/certs/wildcard.domain.dev.key
    command: --web --docker --docker.domain=coincms.localhost
    # command: --web --docker --docker.domain=coincms.localhost --logLevel=DEBUG

  coincms-frontend:
    build:
      context: .
      dockerfile: ./.docker/frontend/Dockerfile
    container_name: coincms-frontend
    restart: always
    working_dir: /frontend
    volumes:
      - ./frontend:/frontend
      - ./frontend/node_modules:/frontend/node_modules
    ports:
      - "3000:3000"
    environment:
      - REACT_APP_API_BASEURI=http://api.coincms.localhost/
      - REACT_APP_ENV=development
    labels:
      - "traefik.backend=coincms-frontend"
      - "traefik.docker.network=web"
      - "traefik.frontend.rule=Host:frontend.coincms.localhost"
      - "traefik.enable=true"
      - "traefik.port=3000"
      - "traefik.default.protocol=http"
    command: yarn run start
    tty: true

  coincms-mongo:
    image: mongo
    container_name: coincms-mongo
    restart: always
    ports:
      - 27017:27017
    volumes:
      - ./mongo-data:/data/db
    # environment:
    #   MONGO_INITDB_ROOT_USERNAME: myroot
    #   MONGO_INITDB_ROOT_PASSWORD: mypassword
    labels:
      - "traefik.backend=coincms-mongo"
      - "traefik.docker.network=web"
      - "traefik.frontend.rule=Host:dbmongo.coincms.localhost"
      - "traefik.enable=true"
      - "traefik.port=27017"
      - "traefik.default.protocol=http"

  coincms-node:
    build:
      context: .
      dockerfile: ./.docker/node/Dockerfile
    container_name: coincms-node
    restart: always
    depends_on:
      - coincms-db
      - coincms-mongo
      - coincms-redis
    working_dir: /node
    volumes:
      - ./node:/node
      - ./node/node_modules:/node/node_modules
    ports:
      - 8000
      - 9229 # node debugger port
    labels:
      - "traefik.backend=coincms-node"
      - "traefik.docker.network=web"
      - "traefik.frontend.rule=Host:api.coincms.localhost"
      - "traefik.enable=true"
      - "traefik.port=8000"
      - "traefik.default.protocol=http"
    environment:
      DEBUG: "cms:*"
      # DEBUG: "api,koa*"
      # DEBUG: "api*"
      # DEBUG: "api*,koa*"
      # DEBUG: "api*,elastic-apm*"
      ENV: development
      NODE_ENV: development
      HOSTNAME: api.coincms.localhost
      PORT: 8000
      # logger defaults to info level so change this to however much level required
      # default should be 'warn' in development ENV, 'info' in non-development ENVs
      # note: info will output __all__ request access logs
      LEVEL: info
      REDIS_MASTER_SERVICE_HOST: coincms-redis
      MOBI_REDIS_MASTER_SERVICE_HOST: coincms-redis
    links:
      - coincms-db
      - coincms-mongo
      - coincms-redis
    networks:
      web:
        aliases:
          - api.coincms.localhost
    tty: true

  coincms-db:
    image: postgres:9.6.9-alpine
    container_name: coincms-db
    restart: always
    environment:
      POSTGRES_PASSWORD: root
      PGDATA: /var/lib/postgresql/data/db-files/
    ports:
      - 5432:5432
    networks:
      - web
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

  coincms-redis:
    image: redis:3.2-alpine
    container_name: coincms-redis
    restart: always
    ports:
      - "6379:6379"
    networks:
      - web

  coincms-dbadmin:
    build: ./.docker/adminer
    container_name: coincms-dbadmin
    restart: always
    ports:
      - 8080
    logging:
      driver: "none"
    links:
      - coincms-db
    labels:
      - "traefik.backend=coincms-dbadmin"
      - "traefik.docker.network=web"
      - "traefik.frontend.rule=Host:dbadmin.coincms.localhost"
      - "traefik.port=8080"
      - "traefik.enable=true"
      - "traefik.default.protocol=http"
    networks:
      web:
        aliases:
          - dbadmin.coincms.localhost

  # coincms-redisadmin:
  #     image: actency/docker-phpredisadmin
  #     container_name: coincms-redisadmin
  #     restart: always
  #     ports:
  #       - 80
  #     logging:
  #       driver: "none"
  #     links:
  #       - coincms-redis
  #     labels:
  #       - "traefik.backend=coincms-redisadmin"
  #       - "traefik.docker.network=web"
  #       - "traefik.frontend.rule=Host:redisadmin.coincms.localhost"
  #       - "traefik.port=80"
  #       - "traefik.enable=true"
  #       - "traefik.default.protocol=http"
  #     environment:
  #         REDIS_1_HOST: coincms-redis
  #     networks:
  #       web:
  #         aliases:
  #           - redisadmin.coincms.localhost
Editor is loading...