我正在尝试使用从此article获得的某些权限设置来启动php7.4-apache容器。 但是遇到了我的容器因错误而停止的问题:
在文章中,作者说:“ ...您需要对要运行的容器有足够的了解,从而可以确定需要更新其所有者的文件和目录。”
从google上我了解到有时在端口繁忙时会发生此错误,但是我敢肯定这不是我的情况,因为如果您在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
docker-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