Sam*_*roe 4 linux permissions centos docker docker-compose
我正在尝试设置一个从主机安装卷的docker容器.无论我尝试什么,它总是说当我远程进入docker容器时权限被拒绝.这是我尝试添加到docker文件的一些命令:
RUN su -c "setenforce 0"
和
chcon -Rt svirt_sandbox_file_t /app
当我远程进入容器时仍然出现以下错误:
错误:EACCES:权限被拒绝,scandir'/ app'出错(本机)
错误:EACCES:权限被拒绝,在错误(本机)打开'npm-debug.log.578996924'
正如您所看到的,app目录被分配给具有uid 1000的某个用户:
这是我的docker文件:
FROM php:5.6-fpm
# Install modules
RUN apt-get update && apt-get install -y \
    git \
    unzip \
    libmcrypt-dev  \
    libicu-dev \
    mysql-client \
    freetds-dev \
    libxml2-dev
RUN apt-get install -y freetds-dev php5-sybase
# This symlink fixes the pdo_dblib install
RUN ln -s /usr/lib/x86_64-linux-gnu/libsybdb.a /usr/lib/
RUN    docker-php-ext-install pdo \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-install pdo_dblib \
    && docker-php-ext-install iconv \
    && docker-php-ext-install mcrypt \
    && docker-php-ext-install intl \
    && docker-php-ext-install opcache \
    && docker-php-ext-install mbstring
# Override the default php.ini with a custom one
COPY ./php.ini /usr/local/etc/php/
# replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# nvm environment variables
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 4.4.7
# install nvm
RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash
# install node and npm
RUN source $NVM_DIR/nvm.sh \
    && nvm install $NODE_VERSION \
    && nvm alias default $NODE_VERSION \
    && nvm use default
# add node and npm to path so the commands are available
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# confirm installation
RUN node -v
RUN npm -v
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer --version
# Configure freetds
ADD ./freetds.conf /etc/freetds/freetds.conf
WORKDIR /app
# Gulp install
RUN npm install -g gulp
RUN npm install -g bower
CMD ["php-fpm"]
这是我的docker-compose:
nginx_dev:
  container_name: nginx_dev
  build: docker/nginx_dev
  ports:
    - "80:80"
  depends_on:
    - php_dev
  links:
    - php_dev
  volumes:
    - ./:/app
php_dev:
  container_name: php_dev
  build: docker/php-dev
  volumes:
    - ./:/app`
是否有任何命令可以运行以授予root用户访问app目录的权限?我也在使用docker-compose.
BMi*_*tch 24
从目录列表中,您似乎已配置了selinux(这是权限位上的尾随点).在启用了selinux的Docker中,您需要使用额外的标志来安装卷:z.Docker将其描述为卷标,但我相信这是一个selinux术语,而不是卷上的docker标签.
您生成的docker-compose.yml应如下所示:
version: '2'
services:
   nginx_dev:
      container_name: nginx_dev
      build: docker/nginx_dev
      ports:
        - "80:80"
      depends_on:
        - php_dev
      links:
        - php_dev
      volumes:
        - ./:/app:z
   php_dev:
      container_name: php_dev
      build: docker/php-dev
      volumes:
        - ./:/app:z
注意,我还将语法更新为版本2. docker-compose.yml的版本1正在逐步淘汰.默认情况下,版本2将导致容器在其自己的网络中运行,这通常是首选,但如果您有其他容器尝试与这些容器进行通信,则可能会导致问题.
| 归档时间: | 
 | 
| 查看次数: | 11748 次 | 
| 最近记录: |