Docker SCRATCH容器找不到文件

时间:2016-01-08 22:44:35

标签: docker redis static-linking dockerfile

我有一个非常简单的dockerfile:

FROM scratch
MAINTAINER "aosmith" <a..h@...com>
EXPOSE 6379
ADD redis-server /redis-server
ENTRYPOINT ["/redis-server"]

docker文件位于一个文件夹中,该文件夹中包含redis-server的静态编译副本。

构建运行find但容器拒绝启动:

➜  redis git:(master) ✗ docker run f16
no such file or directory
Error response from daemon: Cannot start container 46be4ed97560cd63fa4f639bed0e25358e807a8229bb3b5a613aa1274e037040: [8] System error: no such file or directory

我尝试了CMD EXEC ADDCOPY的各种组合,但没有运气。

我正在从源代码构建redis:

make CFLAGS="-static" EXEEXT="-static" \
MALLOC=libc LDFLAGS="-I/usr/local/include/"

值得注意的是,我基本上使用完全相同的Dockerfile来进行项目而没有任何问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

&#34; scatch&#34; image实际上是空的,只能被像go这样对其运行时环境几乎没有依赖性的技术使用。

尝试提供一组操作系统实用程序的基本映像,例如bash等。例如

FROM ubuntu
MAINTAINER "aosmith" <a..h@...com>
EXPOSE 6379
ADD redis-server /redis-server
ENTRYPOINT ["/redis-server"]