【发布时间】:2021-08-26 16:08:21
【问题描述】:
我的 DockerFile 如下所示:
FROM maven:2.3.4-jdk-8
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
.................................
和 docker-entrypoint.sh 看起来像
#!/bin/bash
umask 0011
/bin/bash
现在我在网上看到,entryPoint 是 docker run 命令运行时默认执行的语句。
如果我这样做:
1. docker run -it imageid
不应该打开 bash 因为 /bin/bash 是入口点中的默认语句吗?
But instead it does follow:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.121 s
[INFO] Finished at: 2021-06-09T15:51:18+00:00
[INFO] Final Memory: 5M/59M
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
-
docker run -itd imageid bash 它启动容器。那么bash到底要做什么呢?是不是和之前的命令一样?
-
为什么第二条语句没有向我显示 bash 提示符。为什么它必须通过 docker exec 命令来?
【问题讨论】:
-
你是如何构建这个图像的?我没有看到
maven:2.3.4-jdk-8基本图像 -
确保您的最小示例可以重现。
-
这个 Dockerfile 应该是可构建的。如上所述,您是如何构建它的?
-
我正在使用 docker build 命令构建
标签: bash docker maven docker-compose dockerfile