2017-08-03 189 views
0

我正在學習docker,並使用卷創建了一個持久數據庫的MySQL容器,並且我想在docker-compose up --build過程中從Web容器連接到MySQL容器。將網絡服務器容器連接到MySQL容器

問題是在此期間連接總是失敗。我只能在一切完成後才能訪問MySQL容器。

下面的build/web-server/docker-compose.yml文件中的行RUN mysql -uroot -pmy-root-password -hdatabase總是失敗。

我該如何做到這一點?

泊塢窗,compose.yml

version: '3' 
services: 
    database: 
     container_name: kadu-database 
     build: 
      context: build/database 
      dockerfile: Dockerfile 
    web-server: 
     container_name: kadu-web-server 
     links: 
      - database 
     depends_on: 
      - database 
     build: 
      context: build/web-server 
      dockerfile: Dockerfile 

編譯/數據庫/泊塢窗,compose.yml

FROM mariadb:5.5 
ARG MYSQL_DATABASE 
ARG MYSQL_ROOT_PASSWORD 

RUN apt-get update 
RUN apt-get install patch --assume-yes 

構建/ Web服務器/泊塢窗,compose.yml

FROM ubuntu:16.04 
ARG WEB_USERNAME 
ARG MYSQL_DATABASE 
ARG MYSQL_ROOT_PASSWORD 
RUN apt-get update --quiet=2 && apt-get install mariadb-client --quiet=2 
RUN mysql -uroot -pmy-root-password -hdatabase 
+0

什麼是你想通過連接到數據庫的構建階段實現? – gpapaz

回答

1

與碼頭工人工作包括兩個步驟:基於圖像和運行此容器

  • 構建圖像
  • 創建容器

的一點是,你mysql client可以連接到服務器在第二步。

Dockerfile「執行」,而你建立圖像。在這個時候你沒有任何容器,因此你不能連接到它們。 你需要從Dockerfile移動命令RUN mysql -uroot -pmy-root-password -hdatabaseentrypoint.sh