国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Docker 無(wú)法將同一網(wǎng)絡(luò)中的應(yīng)用程序連接在一起
P粉627136450
P粉627136450 2024-02-26 20:53:13
0
1
501

我有一個(gè) docker compose 文件,如下所示:

version: "3.9"
services:
  mysqldb:
    image: mysql:5.7
    container_name: mysqlcontainer
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - ./db/init.sql:/docker-entrypoint-initdb.d/0_init.sql
    ports:
      - 3306:3306
    expose:
      - 3306
    environment:
      MYSQL_DATABASE: "todos"
      MYSQL_USER: "admin"
      MYSQL_PASSWORD: "password"
      MYSQL_ROOT_PASSWORD: "password"
      SERVICE_TAGS: dev
      SERVICE_NAME: mysqldb
    restart: on-failure
    networks:
      - internalnet
  expressapp:
    container_name: api
    build: .
    image: expressapp:1.0
    ports:
      - "3001:3001"
    expose:
      - "3001"
    environment:
      DB_HOST: mysqldb
      DB_PORT: 3306
      DB_USER: "admin"
      DB_PASSWORD: "password"
      DB_NAME: todos
      DB_CONNECTION_LIMIT: 20
      SERVICE_TAGS: dev
      SERVICE_NAME: expressapp
      PORT: 3001
    depends_on:
      - mysqldb
    networks:
      - internalnet
networks:
  internalnet:
    driver: bridge
volumes:
  database:

如果我使用 docker compose up -d 命令啟動(dòng)容器并使用 ps 命令檢查正在運(yùn)行的容器,我將得到以下輸出:

CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                               NAMES
9f338b733a1c   expressapp:1.0   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:3001->3001/tcp              api
edef8027dc0a   mysql:5.7        "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:3306->3306/tcp, 33060/tcp   mysqlcontainer

但是當(dāng)我嘗試向服務(wù)器發(fā)出 API 請(qǐng)求時(shí),我收到以下錯(cuò)誤消息:

"There was an error processing your request: connect ECONNREFUSED 172.24.0.2:3306"

為什么是因?yàn)槲覍?DB_HOST 變量設(shè)置為 mysql 服務(wù)名稱?

P粉627136450
P粉627136450

全部回復(fù)(1)
P粉293550575

出現(xiàn)此問(wèn)題的原因可能是 expressappmysql 可用于查詢之前啟動(dòng)。

要控制服務(wù)啟動(dòng)順序,您可以將 healthcheck 添加到 mysqldb 服務(wù):

healthcheck:
      test: mysql ${MYSQL_DATABASE} --user=${MYSQL_USER} --password='${MYSQL_PASSWORD}' --silent --execute "SELECT 1;"
      interval: 30s
      timeout: 10s
      retries: 5

depends_on 塊到 expressapp

depends_on:
      mysqldb:
        condition: service_healthy

查看完整示例此處

有關(guān)此內(nèi)容的更多信息,請(qǐng)參閱此答案

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板