我有一个运行 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
是更好的方法,因为您的更改会保留在代码中,而不是在潜在的临时容器上完成。
添加回答
举报
0/150
提交
取消