php - 码头工人撰写权限问题
问题描述
我正在尝试使用从本文中获得的某些权限设置启动 php7.4-apache 容器。但是遇到了我的容器因错误停止的问题:
在文章中作者说:“......您需要对要运行的容器有足够的了解,才能确定需要更新所有者的文件和目录。”
从谷歌我了解到,当端口繁忙时,有时会发生此错误,但我确信这不是我的情况,因为如果您在 Dockerfile 权限部分进行评论,它工作正常。
请给我一个提示,我想念什么。
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
Dockerfile:
FROM php:7.4-apache
ARG USER_ID
ARG GROUP_ID
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libxml2-dev \
libpq-dev \
&& pecl install \
redis \
&& apt-get clean
RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql
RUN docker-php-ext-install pgsql pdo_pgsql
RUN docker-php-ext-enable redis
RUN a2enmod rewrite
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
# permissions
RUN userdel -f www-data &&\
if getent group www-data ; then groupdel www-data; fi && \
groupadd -g ${GROUP_ID} www-data &&\
useradd -l -u ${USER_ID} -g www-data www-data &&\
install -d -m 0755 -o www-data -g www-data /home/www-data
RUN chown --changes --silent --no-dereference --recursive \
--from=33:33 ${USER_ID}:${GROUP_ID} /var/www/html /var/lib/apt/lists/partial
USER www-data
# /permissions
码头工人-compose.yml:
version: '3'
services:
web:
container_name: test_web
build:
context: ./web
args:
# from .env: 1000:1000
USER_ID: ${USER_ID:-0}
GROUP_ID: ${GROUP_ID:-0}
ports:
- 3333:80
volumes:
- ./../src:/var/www/html
links:
- postgres
postgres:
container_name: test_postgres
image: postgres
restart: always
environment:
- POSTGRES_USER=test
- POSTGRES_PASSWORD=123456
- POSTGRES_DB=test
- TZ='GMT+3'
- PGTZ='GMT+3'
ports:
- "5432:5432"
volumes:
- ./postgres/mount:/home/postgres
redis:
container_name: test_redis
image: redis:alpine
command: redis-server
ports:
- "6379:6379"
composer:
container_name: test_composer
image: composer:latest
command: composer install
volumes:
- ./../src:/app
解决方案
推荐阅读
- swift - 可可应用程序中关于串行端口获取操作的 Xcode C++ 代码不允许
- jira - 为什么 Jira 和 Confluence 数据中心管理员在刷新页面后会自动注销?
- c# - 使用枚举数组反序列化 json
- javascript - 赛普拉斯测试框架
- github - Bitbucket:如何在不复制主分支的情况下创建新分支
- firefox - 在 POST 中发送了什么?
- html - Weasyprint 不打印超过一页的页面
- python - 我的卷积神经网络过度拟合
- javascript - 开始使用 React,无法渲染页面传递道具
- laravel-6 - Laravel 6.12 种子工厂看不到状态