3.7. 外部工件 (artifact)
建议不要将二进制文件存储在源存储库中。因此,您必须定义一个构建,在构建过程中拉取其他文件,如 Java .jar 依赖项。具体方法取决于使用的构建策略。
对于 Source 构建策略,必须在 assemble 脚本中放入适当的 shell 命令:
.s2i/bin/assemble 文件
#!/bin/sh APP_VERSION=1.0 wget http://repository.example.com/app/app-$APP_VERSION.jar -O app.jar
#!/bin/sh
APP_VERSION=1.0
wget http://repository.example.com/app/app-$APP_VERSION.jar -O app.jar
.s2i/bin/run 文件
#!/bin/sh exec java -jar app.jar
#!/bin/sh
exec java -jar app.jar
对于 Docker 构建策略,您必须修改 Dockerfile 并通过 RUN 指令 调用 shell 命令:
Dockerfile 摘录
在实践中,您可能希望将环境变量用于文件位置,以便要下载的具体文件能够使用 BuildConfig 中定义的环境变量来自定义,而不必更新 Dockerfile 或 assemble 脚本。
您可以选择不同方法来定义环境变量:
-
使用
.s2i/environment文件(仅适用于Source构建策略) -
在
BuildConfig对象中设置变量 -
使用
oc start-build --env命令显式提供变量(仅适用于手动触发的构建)