AWS ECS Docker:没有指向Drupal路径并给出错误您没有访问此资源的权限

时间:2020-02-20 08:41:38

标签: amazon-web-services docker docker-compose drupal-8 amazon-ecs

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.logaccess.log文件。不是整个Drupal项目。

路径中缺少什么?

1 个答案:

答案 0 :(得分:1)

似乎您遇到了某种碰撞。

  • 您的drupal:8.6-apache映像在/var/www/html文件夹中包含Drupal,但是您将卷映射到容器内的/var/www/文件夹。这完全破坏了它。
  • 您的apache-drupal.conf文件指向/var/www/web,但是项目已经在html内部(我们在容器中)

使其生效的简单方法是执行3次修改(如果仅获取映射日志就足够了)

  1. docker-compose.yml中的卷映射更改为/var/www/web
  2. DocumentRoot中的Directoryapache-drupal.conf更改为/var/www/html/