Drupal 8目录结构如下
drupal-> Web-> Index.php
我有以下文件
docker-compose.yml
version: '3'
services:
drupal:
image: drupal:latest
container_name: drupal
build: .
ports:
- "8081:80"
volumes:
- ./:/var/www
restart: always
DockerFile
FROM drupal:8.6-apache
RUN apt-get update && apt-get install -y \
curl \
git \
mysql-client \
vim \
wget
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php composer-setup.php && \
mv composer.phar /usr/local/bin/composer && \
php -r "unlink('composer-setup.php');"
RUN wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/download/0.4.2/drush.phar && \
chmod +x drush.phar && \
mv drush.phar /usr/local/bin/drush
COPY apache-drupal.conf /etc/apache2/sites-enabled/000-default.conf
WORKDIR /var/www/web
apache-drupal.conf
<VirtualHost *:80>
DocumentRoot "/var/www/web/"
DirectoryIndex index.php
<Directory "/var/www/web/">
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/www/web/error.log
CustomLog /var/www/web/access.log combined
</VirtualHost>
当我通过Drupal Cluster的公共IP访问时,它将仅显示error.log
和access.log
文件。不是整个Drupal项目。
路径中缺少什么?
答案 0 :(得分:1)
似乎您遇到了某种碰撞。
drupal:8.6-apache
映像在/var/www/html
文件夹中包含Drupal,但是您将卷映射到容器内的/var/www/
文件夹。这完全破坏了它。apache-drupal.conf
文件指向/var/www/web
,但是项目已经在html
内部(我们在容器中)使其生效的简单方法是执行3次修改(如果仅获取映射日志就足够了)
docker-compose.yml
中的卷映射更改为/var/www/web
DocumentRoot
中的Directory
和apache-drupal.conf
更改为/var/www/html/