小编Yus*_*hta的帖子

docker-compose:主机环境变量的优先级高于 .env 文件?

我想将 .env 文件中的环境变量设置到容器中。但主机环境变量设置为容器而不是 .env 文件。

设置文件如下。

主机# ls -la:

docker-compose.yml
Dockerfile
.env
Run Code Online (Sandbox Code Playgroud)

主机环境变量:

JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"
LANG="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

.env 文件:

TZ=Asia/Tokyo
LANG=ja_JP.utf8
ORACLE_URL=http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm
ORACLE_VERSION=8u112
JAVA_HOME=/usr/java/jdk1.8.0_112/jre
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: '2'
services:

  oracle8:
    build:
      context: ./
      args:
        ORACLE_URL: ${ORACLE_URL}
        ORACLE_VERSION: ${ORACLE_VERSION}
    environment:
      - TZ=$TZ
      - LANG=$LANG
      - JAVA_HOME=$JAVA_HOME
    image: oracle8
    privileged: true
    tty: true
    container_name: oracle8
    hostname: oracle8
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

FROM centos:latest

ARG ORACLE_URL
ARG ORACLE_VERSION
ARG JAVA_HOME

ENV JAVA_HOME       ${JAVA_HOME}

RUN set -x \
    && yum update -y \
    && yum install -y wget tar \ …
Run Code Online (Sandbox Code Playgroud)

environment-variables docker-compose

4
推荐指数
1
解决办法
6543
查看次数