首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将特殊字符(例如“=”)作为.env文件中变量值的一部分?

如何将特殊字符(例如“=”)作为.env文件中变量值的一部分?
EN

Stack Overflow用户
提问于 2019-03-16 00:27:41
回答 1查看 7.5K关注 0票数 4

根据码头医生,.env文件中的环境变量将以键-val格式作为VAR=VAL格式,对于像foo=bar这样的示例可以很好地工作,但是没有提到不可避免的特殊字符,例如'=',这可能混淆了key-val分隔符或有效db连接字符串的两个部分,如:

secrets.env文件:

代码语言:javascript
复制
 connectionString=Data Source=some-server;Initial Catalog=db;User ID=uid;Password=secretpassword

在docker-Compose.调试器file文件内容中引用为:

代码语言:javascript
复制
services:
  some-service:
    container_name: "service-name"
    env_file:
      - secrets.env
    ports:
      - "80:80"

它还用于转换为docker-compose.yaml,如下所示:

所以问题是--如何包含连接字符串,其中包含=Spaces作为值的一部分?

需要-我们在VS解决方案中几乎没有微服务,希望避免重复相同的连接字符串,否则就需要在“`docker Compose.yaml”的服务规范中使用。

尝试了在单引号/双引号中包含值的,但是在将=作为值处理后进行了转换,包括类似于kubernets文件约定的引号。

EN

回答 1

Stack Overflow用户

发布于 2019-03-16 01:04:20

我做了一个没有任何问题的测试:

代码语言:javascript
复制
$ cat .env
ENV=default
USER_NAME=test2
SPECIAL=field=with=equals;and;semi-colons

$ cat docker-compose.env.yml
version: '2'

services:
  test:
    image: busybox
    command: env
    environment:
      - SPECIAL

$ docker-compose -f docker-compose.env.yml up
Creating network "test_default" with the default driver
Creating test_test_1_55eac1c3767c ... done
Attaching to test_test_1_d7787ac5bfc0
test_1_d7787ac5bfc0 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
test_1_d7787ac5bfc0 | HOSTNAME=d249a16a8e09
test_1_d7787ac5bfc0 | SPECIAL=field=with=equals;and;semi-colons
test_1_d7787ac5bfc0 | HOME=/root
test_test_1_d7787ac5bfc0 exited with code 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55192288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档