>

Dockerfile에 선언 된 env 변수 (USER)에 어떻게 접근 할 수 있습니까?

Dockerfile :

(...)    
ENV USER="username"

예를 들어 Tomcat의 context.xml 구성 파일에서 읽어야합니다.

<Resource type="javax.sql.DataSource"
    (...)
    username="$USER"
    (...)
/>

구문을 아는 사람이 있습니까?

  • 답변 # 1

    ENV 변수를 context.xml 파일에 삽입 할 수 없습니다  아무 조치없이.

    다음을 수행 할 수 있습니다.

    1.

    context.xml 안에 잘 알려진 패턴을 넣으세요   username=USERNAME_TO_CHANGE 와 같은 파일  도커 이미지를 빌드하는 동안 변경하십시오 :

    RUN sed -i "s/username=USERNAME_TO_CHANGE/username=$USER/g" context.xml
    
    

    2.

    파일의 환경 변수를 해당 값으로 바꾸는 envsubst를 사용하십시오. 이를 위해 gettext 를 설치해야합니다  이미지의 패키지를 바꾸고 이름을 context.xml 로 바꿉니다.   context.xml-template 로  예를 들어. 그 후 당신은 단지 Dockerfile 에서 다음을 수행 :

    RUN envsubst < context.xml-template > context.xml
    
    

  • 답변 # 2

    이와 같이 파괴하십시오 . ENV USER "UserName"

  • 답변 # 3

    환경 변수는 다음과 같이 선언 할 수 있습니다 :

    ENV JAVA_OPTS=-Ddatabase.url=jdbc:mysql://0.0.0.0:3306/projectname?useSSL=false
    
    

    그리고 de de variable은 context.xml에서 다음과 같이 사용될 수 있습니다 :

    <Resource type="javax.sql.DataSource"
    (...)
    username="${USER}"
    (...)
    />
    
    

  • 이전 node.js - 구성 파일에서 빠른 라우팅
  • 다음 database indexes - Oracle 압축/b- 트리 인덱스 사용 방법 및시기