Docker-compose本地卷装载osx

时间:2017-09-23 16:41:11

标签: macos docker-compose dockerfile docker-volume grav

我正在尝试使用Grav CMS(getgrav.org)创建一个简单的本地docker设置。

我已经成功地让docker容器启动并向我提供正确的文件,但是当我尝试为" user"创建一个已安装的卷时CMS的目录似乎有所作为。

这是我的Dockerfile:

FROM php:7-apache

RUN set -xe \
    && mkdir -p /usr/src/grav/.unpacked \
    && apt-get update && apt-get install -y libpng12-0 git unzip libpng12-dev --no-install-recommends \
    && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-install gd zip \
    && a2enmod rewrite

ENV GRAV_URL "https://getgrav.org/download/core/grav/1.3.3"

RUN set -xe \
    && curl -fSL -o /usr/src/grav/grav.zip "$GRAV_URL" \
    && unzip /usr/src/grav/grav.zip -d /usr/src/grav/.unpacked \
    && rm /usr/src/grav/grav.zip \
    && mv /usr/src/grav/.unpacked/*/* /usr/src/grav \
    && mv /usr/src/grav/.unpacked/*/.[!.]* /usr/src/grav \
    && rm -rf /usr/src/grav/.unpacked \
    && chown -R www-data:www-data /usr/src/grav \
    && cd /usr/src/grav \
        && bin/gpm selfupgrade -y \
        && bin/gpm install -y admin git-sync

VOLUME /var/www/html

COPY ./docker-entrypoint.sh /entrypoint.sh

ENTRYPOINT [ "/bin/sh", "/entrypoint.sh" ]
CMD [ "apache2-foreground" ]

我的docker-compose.yml文件:

version: '2'
services:

  grav:
    image: grav
    container_name: gravdocker
    ports:
      - "8080:80"
    environment:
      VIRTUAL_HOST: gravlocal.docker

和我的docker-entrypoint.sh:

#!/bin/sh
set -e

if [ -z "$(ls -A /var/www/html)"]; then
    cp -a /usr/src/grav/. /var/www/html/
    chown -R www-data:www-data /var/www/html
        if [ "$GRAV_REVERSE_PROXY" = "true" ]; then
        sed -i "s/reverse_proxy_setup:\sfalse/reverse_proxy_setup: true/g" \
        system/config/system.yaml
    fi
fi

exec "$@"

使用此设置一切正常。当我添加

volumes:
  - ./user:/var/www/html/user

到docker-compose文件,我在浏览器中收到一个禁止错误。当我尝试在dockerfile中为用户目录指定另一个卷时,它也会在浏览器中给我一个禁止的警告。

我的目标是让CMS在docker中运行并在本地监听用户目录,这样我就可以进行主题开发并拥有本地版本的文件。

0 个答案:

没有答案