使在 pre_build 中创建的 docker 映像可用于 docker 集线器上的构建阶段?
make a docker image created in pre_build available for the build phase on docker hub?
我尝试创建一个基于 Oracle 数据库 XE 的 docker 映像。
情况有点特殊。 Oracle 提供了一个 repository,其中包含创建此类映像所需的脚本。这些图像不能直接在 docker 集线器上使用。
该脚本创建一个名为 oracle/database:18.4.0-xe
的图像
我使用该图像通过 COPY
语句复制某些文件。参见 Dockerfile。
我的想法是使用 pre_build
脚本克隆 oracle 存储库,创建该映像,然后简单地 运行 在 docker 集线器上构建。但似乎图像已创建,但在构建阶段不可用。 COPY
语句失败,因为找不到该图像。
是否还有其他事情要做,使该图像在构建阶段可用?
我设法通过将另一个 FROM 添加到 Docker 文件
来实现它
FROM diemobiliar/oraclexe-image:18.4.0-xe as oraclexe
FROM oraclelinux:7-slim
COPY --from=oraclexe --chown=oracle:oinstall\
${ORACLE_HOME}/lib/libsqlplus.so\
并将图像上传到它自己的存储库中。不确定为什么这在本地有效,但在 docker 集线器上构建期间却无效。我假设一些 Docker 版本问题。在 pre_build
脚本中创建的 docker 图像在构建阶段也可见,只有 copy --from=...
语句目前似乎在直接引用图像方面存在一些问题。
互联网上有更多使用该语法但也依赖于 BuildKit 的示例(即使对于我的用例来说这可能更优雅,但我还没有尝试过)。
无论如何找到了某种解决方法,所以现在我很好。
我尝试创建一个基于 Oracle 数据库 XE 的 docker 映像。
情况有点特殊。 Oracle 提供了一个 repository,其中包含创建此类映像所需的脚本。这些图像不能直接在 docker 集线器上使用。
该脚本创建一个名为 oracle/database:18.4.0-xe
我使用该图像通过 COPY
语句复制某些文件。参见 Dockerfile。
我的想法是使用 pre_build
脚本克隆 oracle 存储库,创建该映像,然后简单地 运行 在 docker 集线器上构建。但似乎图像已创建,但在构建阶段不可用。 COPY
语句失败,因为找不到该图像。
是否还有其他事情要做,使该图像在构建阶段可用?
我设法通过将另一个 FROM 添加到 Docker 文件
来实现它FROM diemobiliar/oraclexe-image:18.4.0-xe as oraclexe
FROM oraclelinux:7-slim
COPY --from=oraclexe --chown=oracle:oinstall\
${ORACLE_HOME}/lib/libsqlplus.so\
并将图像上传到它自己的存储库中。不确定为什么这在本地有效,但在 docker 集线器上构建期间却无效。我假设一些 Docker 版本问题。在 pre_build
脚本中创建的 docker 图像在构建阶段也可见,只有 copy --from=...
语句目前似乎在直接引用图像方面存在一些问题。
互联网上有更多使用该语法但也依赖于 BuildKit 的示例(即使对于我的用例来说这可能更优雅,但我还没有尝试过)。
无论如何找到了某种解决方法,所以现在我很好。