Ошибка времени выполнения Docker после команды tar - PullRequest
0 голосов
/ 03 июля 2018

Я получаю файл tar.gz, используя wget, и распаковываю его, используя tar -xzf. Если я запускаю команду tar из запущенного контейнера, она успешно распаковывается и сохраняется как init, в котором я могу затем запустить службу с ./init.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я использую ту же самую команду tar из инструкции RUN в Dockerfile, я всегда получаю ту же ошибку, когда docker build . получает доступ к любой следующей инструкции после RUN tar -xzf команда.

Вот ошибка, которую я получаю:

OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown

А вот мой Dockerfile для тестирования:

FROM amazonlinux:2
RUN yum install -y wget tar gzip
wget https://github.com/just-containers/s6-overlay/releases/download/v1.19.1.1/s6-overlay-amd64.tar.gz
RUN tar -xzf s6-overlay-amd64.tar.gz
RUN echo "test"

Примечание: Если я сделаю RUN tar -xzf последней инструкцией в Dockerfile, она будет успешно построена, но попытка запустить образ в контейнере приведет к той же ошибке.


Дополнительная информация по устранению неисправностей:

Изнутри контейнера я запустил which gzip, чтобы убедиться, что gzip используется с правильного пути (/usr/bin/gzip), и я также запустил file https://github.com/just-containers/s6-overlay/releases/download/v1.19.1.1/s6-overlay-amd64.tar.gz, который выдал следующий вывод к концу:

Length: 1713081 (1.6M) [application/octet-stream]

Насколько мне известно, octet-stream просто означает, что файл является двоичным файлом, и расширение должно быть достаточно, чтобы сказать мне, что это gzip файл.

Я знаю, что этот файл tar.gz успешно распаковывается в другой работающий Dockerfile, собранный FROM alpine:3.6: https://hub.docker.com/r/webcenter/activemq/~/dockerfile/

Я пробовал команду tar, используемую в указанном Dockerfile, и всегда получаю одну и ту же ошибку.

1 Ответ

0 голосов
/ 05 июля 2018

В результате проблема не была Docker, а скорее связана с файлом tar.gz, который я пытался распаковать. Найдено несколько обходных путей здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...