2017-05-16 67 views
0

我試圖建立一個Drupal網站模板,但是我有一個問題,這是我目前的碼頭工人,撰寫:Drupal的網站,碼頭工人,撰寫

version: '2' 
services: 
    database: 
    image: mysql 
    container_name: database 
    command: mysqld --user=root --verbose 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_DATABASE: "db" 
     MYSQL_USER: "user" 
     MYSQL_PASSWORD: "pass" 
     MYSQL_ROOT_PASSWORD: "root" 
     MYSQL_ALLOW_EMPTY_PASSWORD: "yes" 
    restart: always 

    site: 
    image: drupal 
    container_name: site 
    ports: 
     - "555:80" 
    volumes: 
     - ./drupal:/var/www/html 
    links: 
     - database:database 
    working_dir: /app 
    restart: always 

volumes: 
    db: 

現在,如果我這樣做,該網站不工作,沒有文件在/ var/www/html目錄和404網站的一切。但是,如果我刪除網站容器中的音量,它可以很好地工作,我可以開始將其設置爲常規網站。

我錯過了什麼?

+0

如果您使用絕對路徑而不是./drupal,您會得到相同的結果嗎?你是否在合成文件所在的同一個目錄中運行docker-compose? –

+0

順便說一句,看起來你已經宣佈了一個你沒有使用的音量(db)。 –

+0

嗨,布賴恩,你好像是這種情況,如果我運行docker-compose配置,它將用絕對路徑填充那些相對路徑。 –

回答

0

如果您沒有在site服務中映射卷,那意味着Drupal正在使用來自drupal圖片的/var/www/html中的任何內容。當你映射音量時,你將覆蓋/var/www/html與主機上的./drupal中的任何內容。你所看到的結果暗示着./drupal的內容可能有問題。若要開始,我將運行服務而不映射卷,然後的/var/www/html確切的內容複製到本地文件夾:

docker cp compose_site_1:/var/www/html/ ./drupal 

然後嘗試再次運行服務,這一次與卷映射,看看是否作品。如果它有效,那告訴你問題是./drupal的內容。

+0

嗨,這似乎是這種情況,我將如何掛載/ var/www/html /,以便我可以編輯文件等?創建一個卷然後鏈接兩個目錄? –

+0

使用docker cp將容器中/ var/www/html /中的文件複製到機器上的./drupal目錄中。接下來,在不編輯文件的情況下,再次運行容器,這次使用原始帖子中的卷映射,並驗證容器是否仍然有效。然後根據您的需要開始編輯./drupal中的文件。 –

相關問題