我有一个应用程序需要主机上的一些二进制文件才能使基于docker的应用程序正常工作。我可以使用docker注册表发送图像,但如何将这些二进制文件发送到主机?创建deb / rpm似乎是一种选择,但这将违背Docker平台独立的理念。
答案 0 :(得分:1)
如果您需要在主机上的泊坞窗图像之外使用它们,您可以做的就是这个。
将其添加到COPY还有一个调用cp -f src dest
的安装脚本
然后将安装目录从主机挂载到容器中的dest。
类似以下示例:
e.g。 Dockerfile
FROM ubuntu:16.04
COPY file1 /src
COPY file2 /src
COPY install /src
CMD install
构建它:
docker build -t installer .
安装脚本:
#/bin/bash
cp -f /src /dist
安装:
docker run -v /opt/bin:/dist
将导致file1& file2以主机上的/ opt / bin结尾。
答案 1 :(得分:0)
如果您的图像基于包管理器的图像,则可以使用包管理器安装所需的二进制文件,例如
RUN apt-get update && apt-get install -y required-package
或者,您可以从互联网上下载静态链接的二进制文件并提取它们,例如
RUN curl -s -L https://example.com/some-bin.tar.gz | tar -C /opt -zx
如果二进制文件是作为构建过程的一部分创建的,则您希望将其复制
COPY build/target/bin/* /usr/local/bin/