问题标签 [docker-entrypoint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

docker - ENTRYPOINT 脚本变量

我正在研究在运行时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行 dockerizing。在我的 ENTRYPOINT 脚本中,我定义了一些逻辑来创建一个包含 DB 用户名和密码的 database.php 文件。我想运行类似于以下内容的内容。如何定义DB_USERNAMEDB_PASSWORD作为运行时读取的值?

docker run -d --name some-app -e DB_USERNAME=secret_username -e DB_PASSWORD=securepassword

0 投票
2 回答
2172 浏览

docker - 仅来自基本映像的入口点的 Dockerfile

我有一个非常简单的 Dockerfile,如下所示:-

现在我的基础镜像有一个 docker 入口点(在它的 Dockerfile 的末尾),但是你可以看到这个生成的镜像没有。这是否有效,或者我们是否需要在任何给定的 Dockerfile 中有一个 docker 入口点/CMD。此外,结果图像中 COPY 指令的执行顺序是什么。我的意思是,由于这个 Dockerfile 没有入口点,它会从基本映像执行一个,但会在 COPY 指令之后执行,或者会先执行基本映像入口点,然后在容器启动时执行此 COPY 指令只是寻找概念在码头工人。

0 投票
2 回答
1435 浏览

docker - 在 Docker 容器启动期间设置环境变量(在 AWS 上)

我正在尝试传递一个变量,该变量使用以下代码获取 IP 地址:

我尝试设置一个入口点 shell 脚本,例如:

我的 dockerfile 看起来像:

我需要在回显 ECS_INSTANCE_IP_ADDRESS 时显示此变量,以便它可以由 $ECS_INSTANCE_IP_ADDRESS 的 .properties 文件加载。每当我进入容器的 /bin/sh 并回显变量时,它就会显示为空白。如果我在那个 shell 上进行导出,我会得到回显响应。

有任何想法吗?我已经尝试了很多东西,但无法让变量在容器上可用。

0 投票
2 回答
1037 浏览

docker - 如何访问 ENTRYPOINT dockerfile 中的构建参数

我正在尝试基于payara dockerimage在payara micro中部署一个应用程序,我需要在ENTRYPOINT(基本上我想访问ENTRYFORM中的构建参数)exec表单中传递一个争论snapshotversion,因为ENTRYPOINT的exec表单是首选:我的docker文件如下:

注释的 ENTRYPOINT 不起作用。容器日志显示部署无效。我在这里想念什么?另外,我该如何使用 CMD。有人可以发布一个例子。

0 投票
2 回答
1228 浏览

postgresql - 替换 docker 容器中的 postgresql.conf

我正在提取 postgres:12.0-alpine docker 映像来构建我的数据库。我的意图是替换容器中的 postgresql.conf 文件以反映我想要的更改(更改数据目录、修改备份选项等)。我正在尝试使用以下 docker 文件

我的 entrypoint.sh 看起来像

但是我收到一个 exec 错误,说 'custom_admin: not found on the 'exec "$@"' 行。我在这里想念什么?

0 投票
2 回答
1272 浏览

bash - Exec没有替换Docker入口点脚本中的bash shell

我正在尝试从 Docker 容器运行 UWSGI 服务器。我已经取得了成功,但我遇到了一个问题,因为我的入口点脚本在容器启动后仍将以 PID 1 的 root 身份运行,而我宁愿将初始/bin/bash进程替换为 UWSGI 进程:

我用execand尝试了一些变化su-exec,但我仍然在上面。我需要在启动时向 UWSGI 提供我的 PEM 密码,所以我一直在使用如下语法:

这可以很好地启动和运行,但我仍然让 PID 1/bin/bash进程运行,UWSGI 进程作为下面的子进程。我觉得我错过了一些明显的细节来实际让 bash 进程被 UWSGI 进程通过exec.

对于它的价值,我只在 Dockerfile 中使用 ENTRYPOINT,而不是 CMD:

任何指向正确方向的指针将不胜感激。

0 投票
0 回答
103 浏览

docker - 如何在 Docker 容器启动后自动运行脚本而不改变容器的主进程

我有一个运行 Web 服务的 Docker 容器。容器进程启动后,我需要运行一个命令。如何使用 Docker Compose 或 Docker 自动执行此操作?

我正在寻找一种不需要我用运行的 Bash 脚本替换原始容器进程等的解决方案sleep infinity甚至可能吗?

0 投票
1 回答
232 浏览

shell - 入口点脚本中的 Docker exec 命令失败

按照关于在 CMD 之前执行脚本的建议(我需要在重新启动容器之前清除临时目录以修复错误),我将 docker 文件从使用 CMD 修改为入口点,如下所示:

ENTRYPOINT ["/app/entrypoint.sh", "/usr/bin/java -Dlog4j.configurationFile=/app/resources/LINUX/${LOG4J_FILE} -Dpa.config=/app/resources/LINUX/${CONFIG_FILE} -jar /app/app.jar"]

并在 rm -rf 命令之后的入口点文件结尾:

exec "$@"

但是docker无法启动容器,它退出了,容器日志显示:

+ exec '/usr/bin/java -Dlog4j.configurationFile=/app/resources/LINUX/${LOG4J_FILE} -Dpa.config=/app/resources/LINUX/${CONFIG_FILE} -jar /app/app.jar' /app/entrypoint.sh: line 7: /usr/bin/java -Dlog4j.configurationFile=/app/resources/LINUX/${LOG4J_FILE} -Dpa.config=/app/resources/LINUX/${CONFIG_FILE} -jar /app/app.jar: No such file or directory- 这是什么意思?怎么了?

0 投票
1 回答
12036 浏览

docker - Docker Debian nc command not found

When I build my Debian image from docker-compose, with the command $ docker-compose -f docker-compose-dev.yml build web, like so:

docker-compose-fev.yml

As though it appears to build all packages successfully, I'm getting:

If I change #!/bin/sh to #!/bin/bash, error log changes:

Dockerfile:

entrypoint.sh


Note: this entrypoint configuration used to work with Alpine, and now has changed to Debian.

what am I missing?

0 投票
1 回答
576 浏览

docker - dockerfile 找不到 entrypoint.sh

我的文件系统:

  • Dockerfile
  • 入口点.sh
  • 包.json
  • /shared_volume/

Dockerfile

包.json

入口点.sh

命令行 - bash 脚本

如果我运行此代码(注意:使用带有 cmder 的 Windows 10,因此 %cd% 不是 pwd):

错误

如果我取出对入口点的引用,那么代码就可以工作,那么入口点是怎么回事?

有什么建议么。谢谢