Linux 使用alpine source,为什么我无法找到源或“源”&引用;我的环境文件?
如果我窥视图像内部和目录中的ls,我会看到:Linux 使用alpine source,为什么我无法找到源或“源”&引用;我的环境文件?,linux,docker,Linux,Docker,如果我窥视图像内部和目录中的ls,我会看到: drwxr-xr-x 1 root root 4096 Dec 10 22:30 . drwxr-xr-x 1 root root 4096 Dec 10 22:35 .. -rw-r--r-- 1 root root 741 Dec 9 02:45 .env 我正在尝试CMD source.env&./myapp(myapp是一个占位符,我这里有很
drwxr-xr-x 1 root root 4096 Dec 10 22:30 .
drwxr-xr-x 1 root root 4096 Dec 10 22:35 ..
-rw-r--r-- 1 root root 741 Dec 9 02:45 .env
我正在尝试CMD source.env&./myapp
(myapp是一个占位符,我这里有很多文件!),但由于某种原因,我遇到了一个问题-.env文件找不到
我做错了什么
编辑:下面对我有用,但这也有用-CMD../。环境和/我的应用程序
不确定为什么我可以运行cat.env
,但我不能运行source.env
试试以下方法:
这样,在shell表单中,是shell在进行寻源,而不是docker
确保首先将设置到正确的文件夹。
源代码不能保证与/bin/sh
一起使用。改为使用
,如中所述。也就是说,CMD
的shell形式在与/bin/sh
一起运行的文档中非常明确,因此应该与当前用例中的exec
形式具有相同的行为。因此这很奇怪,这是有效的-CMD../。env&./myapp
,但您的也可以使用Dcmdset-x;ls-l.env。env&&./myapp
可能是一个有用的地方——如果ls-l
告诉您该文件不存在,那么您就知道您的代码正在执行的目录不是问题中列出的目录。相反,如果ls
说它确实存在,那么set-x
将意味着.env
文件中的命令将被记录,以便您可以看到哪个命令有问题。
CMD [ "sh", "-c", "source .env && ./myapp" ]