为了账号安全,请及时绑定邮箱和手机立即绑定

在不断退出的 docker 容器中安装自定义包

在不断退出的 docker 容器中安装自定义包

Cats萌萌 2021-09-26 17:12:20
我有一个运行 springboot java 应用程序的 docker 容器。Dockerfile:# Create container with java preinstalledFROM openjdk:8-jdk-alpine# Create app directoryVOLUME /tmp# Handle ArgumentsARG JAR_FILEARG ENV_NAMEENV SPRING_PROFILES_ACTIVE=${ENV_NAME}RUN echo ${ENV_NAME}# Bundle app sourceCOPY ${JAR_FILE} app.jarCOPY application.yml application.yml# Run the serverENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.config.location=application.yml","-jar","app.jar"]现在,我需要在该容器中安装一个自定义库。我需要复制安装,解压缩,运行安装脚本并回答提示(是/否)我知道最简单的方法是连接到容器,安装包并提交更改。首先 - 我使用以下方法启动容器:docker run --name local-jdk8 -d openjdk:8-jdk-alpine下一步是复制数据并运行安装脚本,但由于运行命令为空(“/bin/sh”),这意味着我无法运行,因此容器不断退出docker exec -it local-jdk8 bash关于如何修改这样的容器的任何想法?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

值得一提的是,这里有一个小技巧,可以让您保持容器运行以修改和提交它:

docker run --name local-jdk8 -d openjdk:8-jdk-alpine tail -f /dev/null

此外,bash容器上没有安装,因此sh必须执行以下操作:

docker exec -it local-jdk8 sh

然而,修改Dockerfile是更好的方法,因为您的更改会保留在代码中,而不是在潜在的临时容器上完成。


查看完整回答
反对 回复 2021-09-26
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信