Dockerfile ENTRYPOINT 使用变量

这篇具有很好参考价值的文章主要介绍了Dockerfile ENTRYPOINT 使用变量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如下 Dockerfile 文件中:

#基础镜像,如果本地没有,会从远程仓库拉取。
#FROM openjdk:8-jdk-slim
#FROM docker.io/store/oracle/serverjre:8
FROM xzxiaoshan/dockerssh:oracle_serverjre_8

#镜像的制作人
LABEL MAINTAINER=365384722@qq.com

#工作目录
WORKDIR /app/

#在容器中创建挂载点,可以多个
VOLUME ["/tmp"]

#声明了容器应该打开的端口并没有实际上将它打开
EXPOSE 8080

#定义参数(build构建时使用)
ARG JAR_FILE=app.jar
ARG BRANCH
ARG ENV=dev

#设置环境变量(程序运行时使用)
ENV JAVA_OPTS=""
ENV PARAMS=""

#拷贝本地文件到镜像中
COPY ${JAR_FILE} app.jar

#指定容器启动时要执行的命令,但如果存在CMD指令,CMD中的参数会被附加到ENTRYPOINT指令的后面
ENTRYPOINT ["java", "$JAVA_OPTS", "-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom","-jar", "app.jar", "$PARAMS"]

本意是想在 entrypoint 执行的命令中添加变量参数 JAVA_OPTS 和 PARAMS,如果按照这样写,变量是不被解析的,会报错。

那么正确的写法是使用 sh -c 命令来执行后面的命令,示例如下:

ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -jar app.jar $PARAMS"]

(END)文章来源地址https://www.toymoban.com/news/detail-564371.html

到了这里,关于Dockerfile ENTRYPOINT 使用变量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • dockerfile用ENTRYPOINT好还是用CMD好

    在 Dockerfile 中使用 `ENTRYPOINT` 和 `CMD` 都有其用途和优劣势,具体取决于你的应用和需求。这两个指令的主要区别在于如何处理容器启动时的命令参数。 1. `CMD` 指令:    - `CMD` 用于定义容器启动时的默认命令,但它可以在运行容器时被替代。如果在运行容器时提供了命令参数

    2024年02月08日
    浏览(52)
  • docker 系列之 Dockerfile 文件里 cmd命令与entrypoint命令区别

    cmd给出的是一个容器的默认的可执行体。也就是容器启动以后,默认的执行的命令。重点就是这个“默认”。意味着,如果docker run没有指定任何的执行命令或者dockerfile里面也没有entrypoint,那么,就会使用cmd指定的默认的执行命令执行。同时也从侧面说明了entrypoint的含义,它

    2024年02月05日
    浏览(56)
  • dockerfile ENTRYPOINT 执行.sh脚本提示找不到文件或文件不存在 No such file or directory

    我这里记录的是我遇到的一种特殊情况,如果你也遇到了这个问题,且都试了在百度中找到的解决方法还没有解决可以看看是不是和我遇到的问题一样。 在Dockerfile中,我ADD了两个文件,一个是jar包,一个是一个执行jar包的.sh文件 但是在使用命令: 就会提示 /bin/sh: 0: cannot

    2024年01月21日
    浏览(47)
  • 使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)

    有时候如连接redis的url可能发生变化等,这时候就需要把一些变量放在环境变量中。         使用 --env 和 -e 是一样效果的。 1.1.1 配置Dockerfile文件 1.1.2 编写python示例程序 示例代码: 1.1.3 构建镜像         首先将python代码和dockerfile文件上传到已经安装了docker的服务器

    2024年02月07日
    浏览(50)
  • Docker 制作 MySQL 镜像并使用 `/docker-entrypoint-initdb.d/` 机制初始化数据

    制作一个 MySQL Docker 镜像并初始化数据库信息 win 11 Docker-Desktop 4.14.0 (91374) 启动一个MySQL容器很容易。如何初始化数据呢? 大概我们会尝试很多操作,比如百度常见到 使用 CMD 命令调用shell脚本,通过shell脚本处理初始化数据等等,经过实践,这些都不太方便。 其实,MySQL 官方提

    2024年01月18日
    浏览(143)
  • docker ENTRYPOINT 执行多条命令

    如何在docker里面同时启动多个pm2进程_祥仔先生的博客-CSDN博客_docker pm2 ENTRYPOINT 命令1 命令2 命令3 dockerfile中添加: RUN chmod -x setup.sh ENTRYPOINT [\\\"sh\\\", \\\"./setup.sh\\\"]

    2024年02月12日
    浏览(41)
  • docker: CMD和ENTRYPOINT的区别

    ENTRYPOINT: 容器的执行命令(属于正统命令) 可以使用 --build-arg ENVIROMENT=integration 参数覆盖 ocker build --build-arg ENVIROMENT=integration 两者同时存在时 CMD 作为 ENTRYPOINT 的默认参数使用 外部提供参数会覆盖 CMD 提供的参数。 CMD单独存在时 CMD 替代 ENTRYPOINT 作为容器的执行命令 外部命

    2024年02月14日
    浏览(56)
  • Docker之RUN、COMMAND、ENTRYPOINT辨析

    一  回顾docker一些命令 ①  run create start 的辨析 ②  获取 容器在宿主机 的PID docker inspect --format详解  ③  容器 资源 使用 ④  查看容器的 完整 命令     悬浮镜像dangling image 产生的原因和处理方法   ④  save 和 load ⑤⑥⑦⑧⑨⑩  二    Dockerfile指令的回顾 官网Dockerfile参考

    2024年02月06日
    浏览(61)
  • docker的run,cmd,entrypoint分析和对比

    本文一起看下Dockerfile中经常用到的几个类似命令,RUN,CMD,ENTRYPOINT。 想要有容器我们就必须先创建镜像,而想要有镜像,我们则必须写一个用来描述想要创建的镜像的文件,这个文件我们一般叫做Dockerfile (非强制) ,则容器怎么来的就如下图: 经过上图的 过程1 我们就有

    2024年02月01日
    浏览(36)
  • Docker中,CMD 和 ENTRYPOINT 的区别,简单!明了!

    目录 CMD 和 ENTRYPOINT的区别:结论篇 CMD 和 ENTRYPOINT的其他细节结论 测试篇 一、 CMD的两种格式完全等效,但是ENTRYPOINT两种格式是有区别的 二、 docker run 命令替代了dockerfile的CMD命令 三、 docker run 命令在ENTRYPOINT的键值对格式下,是作为ENTRYPOINT命令的参数,docker run wx-centos ls -

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包