Docker环境变量ENV或-e中含特殊字符转义

2022-03-19 4177点热度 0人点赞 0条评论

Docker中例如Dockerfile设置环境变量或者docker指令-e后面的参数里带有特殊字符的时候,默认就会出现问题,例如

docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.4 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-e MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true\&autoReconnect=true\&useUnicode=true\&characterEncoding=UTF-8\&useSSL=false\&serverTimezone=Asia/Shanghai \
-p 8848:8848 \
-p 8848:9848 \
-p 8848:9849 \
-v /home/docker/nacos/logs:/home/nacos/logs \
--name nacos \
--restart=always \
nacos/nacos-server

其中-e MYSQL_SERVICE_PASSWORD=abc&123 如果密码里带有&或者!等特殊字符,实际带入环境变量中的密码就不正确了

这个时候,需要在将这些特殊字符转义,转义很简单,只需要在这些特殊字符前面上\就可以了,例如:

-e MYSQL_SERVICE_PASSWORD=abc\&123

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论