запуск docker завершается неудачно с / bin / sh: 0 -c требует аргумент - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь запустить образ докера

Dockerfile

FROM marketplace.gcr.io/google/ubuntu1804:latest
MAINTAINER Vinay Joseph (vinay.joseph@microfocus.com)
LABEL ACI_COMPONENT="License Server"
EXPOSE 20000/tcp

#Install Unzip
RUN apt-get install unzip

#Unzip License Server to /opt/MicroFocus
RUN mkdir /opt/MicroFocus
RUN cd /opt/MicroFocus

#Download the License Server
RUN curl -O https://storage.googleapis.com/software-idol-21/LicenseServer_12.1.0_LINUX_X86_64.zip
RUN chmod 777 LicenseServer_12.1.0_LINUX_X86_64.zip
RUN unzip LicenseServer_12.1.0_LINUX_X86_64.zip

cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '-t', 'gcr.io/xxxx/idol-licenseserver', '.']
images:
- 'gcr.io/xxxx/idol-licenseserver'

Полученное сообщение

docker run gcr.io/xxxx/idol-licenseserver 

/ bin / sh: 0: -c требует аргумент

1 Ответ

0 голосов
/ 06 февраля 2019

Есть пара проблем с вашим Dockerfile

Первый

RUN apt-get install unzip

Хорошей практикой является выполнение update перед установкой пакетов, в противном случае вы можете попасть в ситуациюс отсутствующими списками пакетов.

RUN apt-get update && apt-get install -y ...

Секунда

RUN mkdir /opt/MicroFocus
RUN cd /opt/MicroFocus

Это ошибка, потому что cd не работает между слоями (разные команды RUN).То, что вы хотели, достигается с помощью одной WORKDIR команды

WORKDIR /opt/MicroFocus

Третье

Сообщение об ошибке, с которым вы сталкиваетесь, означает, что базовый образ настроен на что-то вроде ENTRYPOINT ["sh", "-c"], поэтому вы ожидаете, что выукажите начальную командную строку при запуске этого образа.Вы должны определить правильную команду запуска и добавить ее к своей команде после имени изображения.

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