docker - Docker撰写-环境变量包含点

标签 docker docker-compose environment-variables

一些服务,例如。 elasticsearch和其他...必须用点设置环境变量,例如:discovery.type =单节点

我想将其归档,这不是问题...

    something:
        build: './imagelocation/'
        env_file: 
          - .env

.env文件包含例如:
EL_ENVIRONMENT=development
discovery.type=single-node

和“discovery.type =单节点”不起作用,我知道为什么不起作用。

如何解决这个问题而没有解决方法? (并且没有安全问题,不想在docker run -e end等中使用)

最佳答案

我使用3.7 docker-compose格式,它可以正常工作。但是,请记住,如果docker-compose应该自动使用它们,则必须在env_file:中使用docker-compose.yml属性。
我的服务配置如下:

version: '3.7'
services:
  elasticsearch:
    container_name: elasticsearch
    build: elasticsearch
    image: my-elasticsearch:latest
    ports:
      - "9200:9200"
      - "9300:9300"
    env_file:
      - .env

我的.env文件:
ES_JAVA_OPTS=-Xmx3g -Xms3g
xpack.security.enabled=false
cluster.name=elasticsearch
discovery.type=single-node

在这种情况下,可以自由命名.env文件,因为我们在docker-compose.yml文件中指出了它的名称。

启动容器时,我发现Elasticsearch已使用适当的参数启动:
elasticsearch      | [2020-04-22T06:43:36,239][INFO ][o.e.d.DiscoveryModule    ] [K_7KyC-] using discovery type [single-node]

不同的方法

您可以直接使用.env文件中的参数。让我们在.env文件中创建自己的参数(使用任何名称):
ES_JAVA_OPTS=-Xmx3g -Xms3g
ES_XPACK_SECURITY_ENABLED=false
ES_CLUSTER_NAME=elasticsearch
ES_DISCOVERY_TYPE=single-node

...并在docker-compose.yml文件中使用这些变量,如下所示:
version: '3.7'
services:
  elasticsearch:
    container_name: elasticsearch
    build: elasticsearch
    image: my-elasticsearch:latest
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - ES_JAVA_OPTS=${ES_JAVA_OPTS}
      - xpack.security.enabled=${ES_XPACK_SECURITY_ENABLED}
      - cluster.name=${ES_CLUSTER_NAME}
      - discovery.type=${ES_DISCOVERY_TYPE}

请记住,这一次您需要使用.env名称的文件或将此环境导出到您的 shell 程序,例如export ES_XPACK_SECURITY_ENABLED=true

关于docker - Docker撰写-环境变量包含点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60967262/

相关文章:

Python 环境变量中的环境变量

java - JAVA_HOME设置错误-Windows 10上的Hadoop

postgresql - 使用 Docker 启动 Web 应用程序,无法连接到 Postgresql 数据库?

r - 在 docker 中挂载 R/RStudio 可以访问的本地卷 (tidyverse)

docker - Kafka无法在Linux机器中与Zookeeper连接

docker - 无法在 Crafter CMS 3.1.0 中创建网站

docker-compose.yaml 不会解析

docker-compose - 在 Docker Compose 中运行参数

docker - 在Neo4j bolt 端口上添加基本前缀

python - __init__.py 中的 __name__ 是什么?