Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker运行失败,原因是/bin/sh:0-c需要一个参数_Docker_Build_Gcloud - Fatal编程技术网

docker运行失败,原因是/bin/sh:0-c需要一个参数

docker运行失败,原因是/bin/sh:0-c需要一个参数,docker,build,gcloud,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 t

我正在尝试运行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需要一个参数


您的
Dockerfile

弗斯特 一个好的做法是在安装包之前执行
更新
,否则您可能会陷入缺少包列表的情况

RUN apt-get update && apt-get install -y ...
第二 这是错误的,因为
cd
在层之间不起作用(不同的
RUN
命令)。您想要的是通过单个
WORKDIR
命令实现的

WORKDIR /opt/MicroFocus
第三
您面临的错误消息意味着基本映像配置了类似于
ENTRYPOINT[“sh”,“-c”]
的内容,因此希望您在启动此映像时提供初始命令行。您必须定义正确的启动命令,并将其附加到映像名称后的命令中。

您可以共享您运行container的命令吗?docker run gcr.io/xxxx/idol-licenseserver在映像名称后的确切位置附加命令?它是在docker文件中还是在docker run命令中?
docker run
RUN mkdir /opt/MicroFocus
RUN cd /opt/MicroFocus
WORKDIR /opt/MicroFocus