【问题标题】:Why booting up docker container using blimp throws an error?为什么使用 blimp 启动 docker 容器会引发错误?
【发布时间】:2020-05-11 20:58:31
【问题描述】:

当我使用 Blimp(云中的 Docker Compose)启动具有以下配置的容器时,它会引发错误 Exited: OCI runtime create failed: container_linux.go:345: starting container process caused "chdir to cwd (\"/var/www/html\") set in config.json failed: permission denied": unknown。使用 docker-compose 启动就可以了。

据我所知,问题在于卷安装。

docker-compose.yml

version: '3'
services:
  app:
    container_name: app
    build:
      context: ./
      dockerfile: Dockerfile
      args:
        user: mk
        uid: 1000
    tty: true
    volumes:
      - ./src:/var/www/html
nginx:
    container_name: nginx
    image: nginx:stable-alpine
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
      - mysql
    networks:
      - default
  mysql:
    container_name: mysql
    image: mysql:5.7
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
    volumes:
      - ./docker/mysql:/var/lib/mysql
    networks:
      - default
networks:
  default:
    driver: bridge

Dockerfile

FROM php:7.4-fpm

LABEL MAINTAINER="Mayur Shingrakhiya <mk.shingrakhiya@gmail.com>"

RUN mkdir -p /var/www/html

ARG user=mk
ARG uid=1000

RUN apt-get update && apt-get install -y git curl libpng-dev libonig-dev libxml2-dev zip unzip

RUN docker-php-ext-install bcmath exif gd mbstring opcache pcntl pdo_mysql

# Get the Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS="1"
ENV PHP_OPCACHE_MAX_ACCELERATED_FILES="10000"
ENV PHP_OPCACHE_MEMORY_CONSUMPTION="192"
ENV PHP_OPCACHE_MAX_WASTED_PERCENTAGE="10"

COPY ./docker/php/conf.d/opcache.ini /usr/local/etc/php/conf.d/opcache.ini

# Create a User
RUN useradd -G www-data,root -u $uid -d /home/$user $user
RUN mkdir -p /home/$user/.composer && chown -R $user:$user /home/$user
RUN chmod -R 775 /var/www/html

WORKDIR /var/www/html

USER $user

您不会找到任何与 Blimp 相关的内容,因为它尚未公开发布。

我们将不胜感激。

【问题讨论】:

  • 当您在/var/www/html 上绑定挂载主机目录时,它会带来其所有权限和(数字)所有权;末尾的chmod 行无效,如果 uid 为 1000 的主机用户无法访问该目录,则会出现该错误。可以COPYDockerfile里的应用代码,把volumes:删掉吗?
  • 如果我删除volumes:,它会启动,但COPY 没有效果。我将uid 更改为与主机用户匹配,但仍然出现此错误。我有另一个用于nginx 的工作容器,它安装在同一目录中。更新了docker-compose.yml

标签: php docker docker-compose dockerfile containers


【解决方案1】:

你可以试试 RUN chmod -R 777 /var/www/html 然后看看你是否得到这个错误?

【讨论】:

  • 我这样说是为了调试我们可以谈的。
猜你喜欢
  • 2017-01-07
  • 1970-01-01
  • 2018-02-15
  • 2021-01-23
  • 2012-10-30
  • 2018-05-09
  • 2018-05-11
  • 2015-09-02
  • 1970-01-01
相关资源
最近更新 更多