docker run / bin / sh:0失败-c需要一个参数

时间:2019-02-06 04:02:55

标签: docker build gcloud

我正在尝试运行docker映像

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 :(得分:0)

您的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"]之类的内容,因此希望您在启动该映像时提供初始命令行。您必须定义正确的启动命令,并将其附加到映像名称之后的命令中。