version: "3" services: # Barcode Backend backend: restart: always build: docker-back/ image: barcode-back container_name: "barcode-back" #command: bash -c "python manage.py runserver 0.0.0.0:8000" command: bash -c "gunicorn -w 4 -b 0.0.0.0:8000 barcode.wsgi:application --log-level=info --log-file=/back/gunicorn.log --access-logfile=/back/gunicorn-access.log" ports: - "8000:8000" volumes: - /opt/back:/back:rw depends_on: - mysql - rabbit - memcached environment: DEBUG: 'true' links: - rabbit:rabbit - memcached:memcached # RabbitMQ - queue rabbit: restart: always container_name: "barcode-rabbit" hostname: rabbit image: rabbitmq:3-management environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=gW3KSoZt5K5o9V99YJUH - RABBITMQ_DEFAULT_VHOST=barcode ports: - "5672:5672" - "15672:15672" # here, we can access rabbitmq management plugin # Celery worker celery-w: restart: always image: barcode-back container_name: "barcode-celery-w" command: sh -c "python -m celery -A barcode worker -l debug" volumes: - /opt/back:/back:rw links: - rabbit:rabbit depends_on: - rabbit - backend # Celery Beat celery-b: restart: always image: barcode-back container_name: "barcode-celery-b" command: sh -c "python -m celery -A barcode beat --pidfile= -l debug" volumes: - /opt/back:/back:rw links: - rabbit:rabbit depends_on: - celery-w - rabbit # Celery Flower celery-f: restart: always image: barcode-back container_name: "barcode-celery-f" command: sh -c "python -m celery -A barcode flower --port=5555 --broker=amqp://admin:gW3KSoZt5K5o9V99YJUH@rabbit:5672/barcode" volumes: - /opt/back:/back:rw links: - rabbit:rabbit depends_on: - celery-w - rabbit ports: - "5555:5555" # Barcode Frontend frontend-dev: restart: always build: docker-front/ image: barcode-front container_name: "barcode-front" expose: - "8080" ports: - "8080:8080" volumes: - /opt/front:/front:rw # Barcode Backend mysql: restart: always container_name: "barcode-mysql" image: mariadb:latest volumes: - /opt/mysql/backend-mysql:/var/lib/mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=gW3KSoZt5K5o9V99YJUH - MYSQL_DATABASE=backend_dev - MYSQL_USER=backend - MYSQL_PASSWORD=gW3KSoZt5K5o9V99YJUH # phpmyadmin phpmyadmin: image: phpmyadmin/phpmyadmin container_name: "barcode-phpmyadmin" restart: always ports: - "5000:80" links: - mysql environment: PMA_HOST: mysql memcached: restart: always container_name: "barcode-memcached" image: memcached:latest command: "memcached -u memcache -vv -m 64 -p 11211 -l 0.0.0.0 -c 1024 -t 8" ports: - "127.0.0.1:11211:11211"