簡體   English   中英

如何使用 Docker 更改文檔根目錄

[英]How to change Document Root with Docker

我是 Docker 的新手。 我正在嘗試為我的應用更改文檔根目錄。 my-app 目錄有我的 php 代碼。

Project
 - docker-compose.yml
 - html
    - my-app
 - php
    - 000-default.conf
    - Dockerfile

docker-compose.yml

version: "3"

services:
  php:
    build: ./php/
    # image: php:7.2-apache
    volumes:
      - ./html:/var/www/html
    ports: 
      - 8080:80
    container_name: php7.2
    restart: always

文件

FROM php:7.2-apache

RUN apt-get -y update && apt-get -y install vim
COPY 000-default.conf /etc/apache2/sites-available/

000-default.conf

<VirtualHost *:8080>
 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/my-app
 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    EnableSendfile off
</VirtualHost>

我命令docker-compose up -d --build ,但是文檔根目錄永遠不會更改為我期望的 my-app 。 我確認000-default.conf已通過容器內的 COPY 更改。

請給我同樣的建議。 謝謝。

您的端口似乎是前后顛倒的。 在您docker-compose.yml文件中,您已經設置了主機端口 8080 和容器端口 80 (👍),但是您的 v-host 正在偵聽容器端口 8080。

我實際上沒有看到任何理由讓您覆蓋默認站點配置,也沒有理由讓您擁有Dockerfile 默認站點通過容器端口 80 提供來自/var/www/html內容,因此您無需更改它。

試試這個配置

version: "3"

services:
  php:
    image: php:7.2-apache
    volumes:
      - "./html:/var/www/html"
    ports: 
      - "8080:80"

使用運行堆棧

docker-compose up -d

然后在瀏覽器中打開http://localhost:8080/my-app/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM