问题标签 [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.
docker - ENTRYPOINT 脚本变量
我正在研究在运行时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行 dockerizing。在我的 ENTRYPOINT 脚本中,我定义了一些逻辑来创建一个包含 DB 用户名和密码的 database.php 文件。我想运行类似于以下内容的内容。如何定义DB_USERNAME
和DB_PASSWORD
作为运行时读取的值?
docker run -d --name some-app -e DB_USERNAME=secret_username -e DB_PASSWORD=securepassword
docker - 仅来自基本映像的入口点的 Dockerfile
我有一个非常简单的 Dockerfile,如下所示:-
现在我的基础镜像有一个 docker 入口点(在它的 Dockerfile 的末尾),但是你可以看到这个生成的镜像没有。这是否有效,或者我们是否需要在任何给定的 Dockerfile 中有一个 docker 入口点/CMD。此外,结果图像中 COPY 指令的执行顺序是什么。我的意思是,由于这个 Dockerfile 没有入口点,它会从基本映像执行一个,但会在 COPY 指令之后执行,或者会先执行基本映像入口点,然后在容器启动时执行此 COPY 指令只是寻找概念在码头工人。
docker - 在 Docker 容器启动期间设置环境变量(在 AWS 上)
我正在尝试传递一个变量,该变量使用以下代码获取 IP 地址:
我尝试设置一个入口点 shell 脚本,例如:
我的 dockerfile 看起来像:
我需要在回显 ECS_INSTANCE_IP_ADDRESS 时显示此变量,以便它可以由 $ECS_INSTANCE_IP_ADDRESS 的 .properties 文件加载。每当我进入容器的 /bin/sh 并回显变量时,它就会显示为空白。如果我在那个 shell 上进行导出,我会得到回显响应。
有任何想法吗?我已经尝试了很多东西,但无法让变量在容器上可用。
docker - 如何访问 ENTRYPOINT dockerfile 中的构建参数
我正在尝试基于payara dockerimage在payara micro中部署一个应用程序,我需要在ENTRYPOINT(基本上我想访问ENTRYFORM中的构建参数)exec表单中传递一个争论snapshotversion,因为ENTRYPOINT的exec表单是首选:我的docker文件如下:
注释的 ENTRYPOINT 不起作用。容器日志显示部署无效。我在这里想念什么?另外,我该如何使用 CMD。有人可以发布一个例子。
postgresql - 替换 docker 容器中的 postgresql.conf
我正在提取 postgres:12.0-alpine docker 映像来构建我的数据库。我的意图是替换容器中的 postgresql.conf 文件以反映我想要的更改(更改数据目录、修改备份选项等)。我正在尝试使用以下 docker 文件
我的 entrypoint.sh 看起来像
但是我收到一个 exec 错误,说 'custom_admin: not found on the 'exec "$@"' 行。我在这里想念什么?
bash - Exec没有替换Docker入口点脚本中的bash shell
我正在尝试从 Docker 容器运行 UWSGI 服务器。我已经取得了成功,但我遇到了一个问题,因为我的入口点脚本在容器启动后仍将以 PID 1 的 root 身份运行,而我宁愿将初始/bin/bash
进程替换为 UWSGI 进程:
我用exec
and尝试了一些变化su-exec
,但我仍然在上面。我需要在启动时向 UWSGI 提供我的 PEM 密码,所以我一直在使用如下语法:
这可以很好地启动和运行,但我仍然让 PID 1/bin/bash
进程运行,UWSGI 进程作为下面的子进程。我觉得我错过了一些明显的细节来实际让 bash 进程被 UWSGI 进程通过exec
.
对于它的价值,我只在 Dockerfile 中使用 ENTRYPOINT,而不是 CMD:
任何指向正确方向的指针将不胜感激。
docker - 如何在 Docker 容器启动后自动运行脚本而不改变容器的主进程
我有一个运行 Web 服务的 Docker 容器。容器进程启动后,我需要运行一个命令。如何使用 Docker Compose 或 Docker 自动执行此操作?
我正在寻找一种不需要我用运行的 Bash 脚本替换原始容器进程等的解决方案。这sleep infinity
甚至可能吗?
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
- 这是什么意思?怎么了?
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?
docker - dockerfile 找不到 entrypoint.sh
我的文件系统:
- Dockerfile
- 入口点.sh
- 包.json
- /shared_volume/
Dockerfile
包.json
入口点.sh
命令行 - bash 脚本
如果我运行此代码(注意:使用带有 cmder 的 Windows 10,因此 %cd% 不是 pwd):
错误
如果我取出对入口点的引用,那么代码就可以工作,那么入口点是怎么回事?
有什么建议么。谢谢