繁体   English   中英

当 Docker 图像启动时 MySQL 不工作

[英]MySQL is not working when Docker images started

我尝试为 WhatsApp api 运行本地 docker 环境。 但是,当我运行docker-compose时,它会告诉我MySQL is not up yet - sleeping 我没有在我的 PC 上安装 MySql 因为我认为 docker 像 VM 一样工作,所以它会下载 mysql 并运行它。 有什么问题?

docker-compose.yml

version: '3'

volumes:
  whatsappMedia:
    driver: local
  mysqlData:
    driver: local
services:
   db:
     image: mysql:5.7.35
     restart: always
     environment:
        MYSQL_ROOT_PASSWORD: testpass
        MYSQL_USER: testuser
        MYSQL_PASSWORD: testpass
     expose:
        - "33060"
    ports:
    - "33060:3306"
volumes:
 - mysqlData:/var/lib/mysql
network_mode: bridge
cap_drop:
  - MKNOD
wacore:
 image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.35.5?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.37.1 docker-compose <command> <options>)}
command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
volumes:
 - whatsappMedia:/usr/local/wamedia
env_file:
  - db.env
environment:
  # This is the version of the docker templates being used to run WhatsApp Business API
  WA_RUNNING_ENV_VERSION: v2.2.3
  ORCHESTRATION: DOCKER-COMPOSE
depends_on:
  - "db"
network_mode: bridge
links:
  - db
cap_drop:
  - MKNOD
waweb:
image: docker.whatsapp.biz/web:v${WA_API_VERSION:-2.35.4?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.37.1 docker-compose <command> <options>)}
command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
ports:
 - "9090:443"
volumes:
 - whatsappMedia:/usr/local/wamedia
env_file:
  - db.env
environment:
  WACORE_HOSTNAME: wacore
  # This is the version of the docker templates being used to run WhatsApp Business API
  WA_RUNNING_ENV_VERSION: v2.2.3
  ORCHESTRATION: DOCKER-COMPOSE
depends_on:
  - "db"
  - "wacore"
links:
  - db
  - wacore
network_mode: bridge
cap_drop:
  - MKNOD

db.env

WA_DB_ENGINE=MYSQL
WA_DB_HOSTNAME=127.0.0.1
WA_DB_PORT=3306
WA_DB_USERNAME=root
WA_DB_PASSWORD=testpass
WA_DB_CONNECTION_IDLE_TIMEOUT=180000

我编辑了 docker-compose 文件,将版本从 3 更改为 3.9,添加了默认网络并删除了 network_mode:bridge。

version: '3.9'

volumes:
  whatsappMedia:
    driver: local
  mysqlData:
    driver: local

networks:
  default:
    driver: bridge

services:
  db:
    image: mysql:5.7.35
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: testpass
      MYSQL_USER: testuser
      MYSQL_PASSWORD: testpass
    expose:
        - "33060"
    ports:
        - "33060:3306"
    volumes:
     - mysqlData:/var/lib/mysql
    networks:
      - default
    cap_drop:
      - MKNOD
  wacore:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.39.2 docker-compose <command> <options>)}
    command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
    volumes:
     - whatsappMedia:/usr/local/wamedia
    env_file:
      - db.env
    environment:
      # This is the version of the docker templates being used to run WhatsApp Business API
      WA_RUNNING_ENV_VERSION: v2.2.3
      ORCHESTRATION: DOCKER-COMPOSE
    depends_on:
      - db
    cap_drop:
      - MKNOD
  waweb:
    image: docker.whatsapp.biz/web:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.39.2 docker-compose <command> <options>)}
    command: ["/opt/whatsapp/bin/wait_on_mysql.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
    ports:
     - "9090:443"
    volumes:
     - whatsappMedia:/usr/local/wamedia
    env_file:
      - db.env
    environment:
      WACORE_HOSTNAME: wacore
      # This is the version of the docker templates being used to run WhatsApp Business API
      WA_RUNNING_ENV_VERSION: v2.2.3
      ORCHESTRATION: DOCKER-COMPOSE
    depends_on:
      - db
      - wacore
    cap_drop:
      - MKNOD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM