遇到了一个奇怪的问题,有个启动 docker-compose 的脚本,在Mac下面运行没问题,在windows上则报错找不到.env中的一个变量。
上图是sh脚本中定义了变量 BASE64_ENV_CONTENT ,然后在 docker-compose中通过environment传递
services:
backend:
build:
context: ./be/
dockerfile: Dockerfile
container_name: backend
environment:
- BASE64_ENV_CONTENT=${BASE64_ENV_CONTENT}
在我的Mac上运行正常,发给小弟让他确认时却说在windows上的backend容器报错,找不到一个变量。
本来这个脚本是要发给客户运行的,想着也不可能在windows上去跑服务,所以让小弟再试试wdl系统,结果告诉我正常。
本来就以为完了的,结果小弟比较给力,自己发现了导致这个问题的原因,就是windows系统要加这个参数禁用换行,别的系统不需要。
export BASE64_ENV_CONTENT=$(cat .env | base64 -w o)