【发布时间】:2019-03-27 10:29:32
【问题描述】:
我正在使用 Git for Windows 为 Windows 的 Docker 工具箱提供的 bash shell。我想将表示 unix 路径的字符串导出到环境变量,然后在 docker 容器中使用。比如:
export MY_VAR=/my/path; docker-compose up
问题是在我的容器中,变量将类似于:
echo $MY_VAR # prints c:/Program Files/Git/my/path
所以看起来 shell(我的猜测)将字符串识别为路径并将其转换为 windows 格式。有没有办法阻止这种情况?
我尝试使用MSYS_NO_PATHCONV=1:
MSYS_NO_PATHCONV=1; export LOG_PATH=/my/path; docker-compose up
但是没有任何效果。
我认为这不是我的 docker-compose 和 dockerfile 的问题,但如果有人感兴趣,我会附上它们。
我的Dockerfile:
FROM node:8-slim
RUN mkdir /test \
&& chown node:node /test
USER node
ENTRYPOINT [ "/bin/bash" ]
我的docker-compose.yml:
version: '2'
services:
test:
build:
context: .
image: test
environment:
- MY_VAR
volumes:
- ${MY_VAR}:/test
command: -c 'sleep 100000'
这里的最终目标是使主机上的目录可以从 docker 容器访问(用于日志等)。该目录应由环境变量设置。在docker-compose.yml 中设置目录确实有效,只是不适用于我的用例。
【问题讨论】:
标签: bash docker-compose environment-variables git-bash