【发布时间】:2017-09-05 16:01:19
【问题描述】:
我正在尝试使用 docker-compose 创建一个 docker 容器,它在本地文件系统上安装一个卷(对于容器的 /var/www/html),然后添加一个名为 maps 和 chowns 的目录,chmods 是 www -data,以便网络服务器可以将文件写入其中。
我尝试了几种方法,使用如下 entrypoint.sh 脚本:
Dockerfile
FROM php:5.6-apache
COPY apache-config.conf /etc/apache2/sites-enabled/000-default.conf
RUN a2enmod rewrite headers
RUN service apache2 restart
COPY entrypoint.sh /entrypoint.sh
RUN chmod 0755 /entrypoint.sh
docker-compose.yml({} 中的内容仅来自 .env 文件)
version: '2'
services:
webserver:
build: ./docker/webserver
image: web
ports:
- "8080:80"
volumes:
- ./web:${APACHE_DOC_ROOT}
links:
- db
environment:
- HTTP_ROOT=http://${DOCKER_HOST_IP}:${DOCKER_HOST_PORT}/
- PHP_TMP_DIR=${PHP_TMP_DIR}
- APACHE_LOG_DIR=${APACHE_LOG_DIR}
- APACHE_DOC_ROOT=${APACHE_DOC_ROOT}/
- SERVER_ADMIN_EMAIL=${SERVER_ADMIN_EMAIL}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
入口点.sh
#!/bin/sh
mkdir /var/www/html/maps
chown www-data /var/www/html/maps
chgrp www-data /var/www/html/maps
exec "$@"
我也尝试过不使用任何 entrypoint.sh 内容,只需将其添加到 composer.yml(在环境键之后):
command: bash -c "mkdir /var/www/html/maps && chown www-data /var/www/html/maps && chgrp www-data /var/www/html/maps"
但是这两种方法似乎在 docker-compose 日志中都没有错误,除了
webserver_1 以代码 0 退出
【问题讨论】:
标签: docker docker-compose