0

我正在尝试在 Openshift 3.x 上运行 Quarkus 本机映像应用程序。

我按照 Quarkus 的说明在 Fedora 机器上生成了本机映像:

./mvnw package -Pnative

我已经验证生成的二进制文件在 Fedora 机器上运行正常:

2019-05-30 08:45:06,957 INFO  [io.quarkus] (main) Quarkus 0.15.0 started in 0.052s. Listening on: http://0.0.0.0:8080
2019-05-30 08:45:06,963 INFO  [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jsonb]
^C2019-05-30 08:45:12,836 INFO  [io.quarkus] (main) Quarkus stopped in 0.011s

然后我将该图像插入到 Docker 容器中:

FROM registry.fedoraproject.org/fedora-minimal
WORKDIR /work/

RUN curl -v -H 'Cache-Control: no-cache' -fSL "http://xxx/quarkus-ms-users-1.0-SNAPSHOT-runner" -o /work/application

RUN ls -la /work
EXPOSE 8080
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]

我在 Openshift 中构建映像,部署容器时失败:

错误:无法启动容器“quarkus-native-ms-users”:来自守护进程的错误响应:{“message”:“无效的标头字段值\”oci运行时错误:container_linux.go:247:启动容器进程导致\\” exec: \\\\"./application\\\\": 权限被拒绝\\"\n\""}

这张图片有什么问题?

4

1 回答 1

0

问题是我缺少二进制文件的执行权限RUN chmod +x /work/application

完整的 Dockerfile:

FROM registry.fedoraproject.org/fedora-minimal
WORKDIR /work/

RUN curl -v -H 'Cache-Control: no-cache' -fSL "http://xxx/quarkus-ms-users-1.0-SNAPSHOT-runner" -o /work/application
RUN chmod +x /work/application
RUN ls -la /work
EXPOSE 8080
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
于 2019-05-30T10:08:57.273 回答