Docker和Magento权限问题

dl5txlt9  于 2022-11-12  发布在  Docker
关注(0)|答案(2)|浏览(123)

我已经正确地对接了Apache + MySQL,并且成功地进入了Magento的安装页面。但是我在管理主机容器数据卷时遇到了问题<->。
Magento正在该卷上创建只读日志文件,但安装程序随后返回一个错误,指出该日志文件在安装过程的后续步骤中不可写。
我怀疑Docker的ACL会自动将新文件设置为只读,但在它再次从卷中读取文件后,它就不可写了,并返回错误。
有人知道一个优雅的方法来解决这个问题吗?
docker-compose.yml:

apache:
    build: .
    dockerfile: Dockerfile
    command: "/usr/sbin/apache2 -D FOREGROUND"
    volumes:
       - ./src/magento:/var/www/site
    environment:
        APACHE_RUN_USER: www-data
        APACHE_RUN_GROUP: www-data
        APACHE_LOCK_DIR: /var/lock/apache2
        APACHE_LOG_DIR: /var/log/apache2
        APACHE_PID_FILE: /var/run/apache2.pid
    ports:
        - "80:80"

mysqldb:
  image: mysql
  ports:
    - "3306:3306"
  environment:
    MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    MYSQL_ROOT_PASSWORD: pass
    MYSQL_DATABASE: magento

停靠文件:

FROM ubuntu

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
    apache2 php curl libapache2-mod-php7.0 \
    php7.0 php7.0-mysql php7.0-mcrypt \
    php7.0-mbstring php7.0-cli php7.0-gd \
    php7.0-curl php7.0-xml php7.0-zip php7.0-intl sudo

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN a2enmod php7.0
RUN a2enmod rewrite

ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf

RUN mkdir -p /var/www/site
ADD src/magento /var/www/site

WORKDIR /var/www/site

EXPOSE 80

安装过程中的错误输出,在0%时停止:
路径“install.log:///var/www/site/var/log/var/www/site/var/log/“不可写

zqry0prt

zqry0prt1#

我认为您不能使用安全用户运行Docker,也许您应该尝试以下操作:


# Add user

RUN groupadd -g 1000 app \
    && useradd -g 1000 -u 1000 -d /var/www -s /bin/bash app

RUN mkdir -p /var/www/html \
    && chown -R app:app /var/www

USER app:app
VOLUME /var/www
WORKDIR /var/www/html

你可以在这里看到我的完整Dockerfile:
https://github.com/dylanops/docker-magento/blob/master/dockerfile/php-fpm/Dockerfile

1l5u6lss

1l5u6lss2#

尝试在您的dockerfile中添加以下行,然后重新启动该过程:

VOLUME /var/www/site

相关问题