Сборка Dockerfile с «RUN apt-get update» дает мне «процесс создания тюрьмы внутри rootfs, вызвавший« permissions denied »» - PullRequest
0 голосов
/ 30 апреля 2019

Мой хост докера - Ubuntu 19.04. Я установил докер с помощью оснастки. Я создал Dockerfile следующим образом:

FROM ubuntu:18.04
USER root
RUN apt-get update
RUN apt-get -y install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
RUN wget http://nginx.org/download/nginx-1.15.12.tar.gz
RUN tar -xzvf nginx-1.15.12.tar.gz
RUN cd nginx-1.15.12
RUN ./configure --sbin-path=/usr/bin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-pcre --pid-path=/var/run/nginx.pid --with-http_ssl_module
RUN make
RUN make install

Я запускаю его с помощью этой команды:

сборка sudo docker.

Я получаю этот вывод:

Sending build context to Docker daemon  3.584kB
Step 1/10 : FROM ubuntu:18.04
 ---> d131e0fa2585
Step 2/10 : USER root
 ---> Running in 7078180cc950
Removing intermediate container 7078180cc950
 ---> 2dcf8746bcf1
Step 3/10 : RUN apt-get update
 ---> Running in 5a691e679831
OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:109: jailing process inside rootfs caused \\\"permission denied\\\"\"": unknown

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 30 апреля 2019

В вашем вопросе есть несколько вопросов:

  1. Не запускать докер с sudo.Если ваш собственный пользователь не имеет права запускать docker, вы должны добавить себя в группу Docker: sudo usermod -aG docker $(whoami)

  2. Некоторые из ваших команд RUN не имеют значения или, по крайней мере, не имеютзначение, которое вы намереваетесь - например: RUN cd anything просто перейдет в каталог внутри этого конкретного шага RUN.Это не распространяется на следующий шаг.Используйте && для объединения нескольких команд в одну RUN или WORKDIR для установки рабочего каталога для следующих шагов.

  3. Кроме того, вы пропустили wgetпакет

Вот рабочая версия вашего Dockerfile:

FROM ubuntu:18.04

RUN apt-get update && apt-get -y install \
    build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget

RUN wget http://nginx.org/download/nginx-1.15.12.tar.gz

RUN tar -xzvf nginx-1.15.12.tar.gz

WORKDIR nginx-1.15.12

RUN ./configure \
    --sbin-path=/usr/bin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-pcre \
    --pid-path=/var/run/nginx.pid \
    --with-http_ssl_module

RUN make && make install
...