从Docker镜像创建可执行文件是否可行?

3
我有一个docker镜像,想将其编译成可执行文件,这种操作是否可行?
我对docker不熟悉,请讲得易懂一些。
编辑 - 在这里我使用“可执行文件”这个术语有些轻率。我意识到docker不是解决方案,可能需要开始研究Web Assembly。

1
不是很对,通常你会将可执行文件放入Docker镜像中,而不是反过来。你希望实现什么? - David Maze
1
我有一个 Docker 镜像,其中安装了运行 CLI 应用程序所需的所有依赖项。我已将其放入 Docker Hub 存储库中,并可以将其用作基础镜像。我希望在浏览器中以每个用户为基础运行它,而不是在服务器上运行,这样用户就可以使用他们自己的 CPU 进行处理。 - b.stevens.photo
我在其他地方发布了这个问题,有人告诉我如果我能够得到一个浏览器可以下载的可执行文件,那么这个问题可能是可行的。 - b.stevens.photo
1
你正在寻找一个用户需要下载的可执行文件。这与作为可执行文件运行的容器完全不同。在这种情况下,Docker 不是答案。 - alex067
1
如果需要在浏览器中运行,您将需要使用浏览器本地技术(最有可能是Javascript或其衍生技术;如果您勇敢的话,可以使用WebAssembly)重新构建它。您无法在浏览器中运行Docker镜像,而且绝对不能在其中运行任意可执行文件 - 这将是一个巨大的安全噩梦。 - David Maze
我越和人们谈论这个话题,就越多地听到关于WebAssembly的事情。我以前用过它,但只是为了打包Web应用程序,那更像是“这里有一个带有WebAssembly的东西,玩得开心”。 - b.stevens.photo
1个回答

2

是的。在您的Dockerfile中,如果添加ENTRYPOINT和命令,它将把镜像视为可执行文件,一旦构建完毕。

所以,如果您有ENTRYPOINT ["echo", "hello world"],例如,当您运行基于此镜像的容器时,它将使用该命令作为其执行点。


是的,我一直在考虑这个问题,我可以使用 docker exec <image> <command>,但我需要弄清楚如何在客户端浏览器中运行它。我想在每个用户的基础上使用用户的 CPU,而不是服务器的 CPU。 - b.stevens.photo
1
@bryanstevens314 你不能在浏览器中运行docker镜像。 - Brad
我慢慢意识到这一点。我知道我想要实现的目标是可行的,但也许不能使用docker实现。 - b.stevens.photo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接