我需要创建一个基于Ubuntu的自定义映像,其中包含我需要使用apt安装的软件。例如:
sudo apt-get install pcscd
sudo apt-get install pcsc-tools # same as pcsc-lite
# For OMNIKEY for driver Then unpack the file and run the installer:
cd /home/cccam/ifdokccid_lnx_x64-3.7.0/
chmod 755 install
sudo ./install
我还希望该软件在OpenJDK1.864位下运行,我也将安装它。关键是我需要运行这样的命令。我如何用JIB做到这一点?有没有办法让JIB使用Docker文件?有什么方法可以将这样的命令脚本传递到JIB中吗?
Jib不使用Dockerfile
(即使没有安装Docker也能工作(;Jib构建映像的方式与Docker CLI使用Dockerfile
构建映像的方法有根本不同(可复制与不可复制、声明性与命令性、Docker和Dockerfile
无构建与需要Docker守护进程和客户端、需要root权限与不需要(。基本上,Jib不"运行"Dockerfile
指令,尤其是像RUN
这样执行某些指令的指令;Jib不提供/包括Docker运行时(这是Jib的要点之一(。
对于安装像OpenJDK这样的复杂软件包,(目前(最好的选择是准备一个自定义的基本映像,该映像与所有预先安装的软件包一起提供,并让Jib使用该映像。注意,最近的Jib版本可以指定本地Docker守护进程映像或tarball作为基础映像(除了远程注册表映像(。
如果您只需要安装少量二进制文件,您可以使用extraDirectories
功能(Maven/Gradle(复制任意文件。下面是一个使用该功能安装Stackdriver Debugger Java代理的示例。
以防万一,您可以将Jib配置为运行任意的ENTRYPOINT
或CMD
,或者包括自定义脚本文件(使用extraDirectories
功能(并在运行时运行它们,但我不认为您真的在问这个功能。我相信您的目标是在构建时安装额外的软件包。