私はSpringアプリケーションをドッキングしようとしています。ドッカー。 Springアプリケーション。環境変数を設定して取得する
問題: 私のSpringアプリケーションでは、ドッカーコンテナから環境変数を取得できません。
春の設定(2つのオプションは、個別に試してみました)<bean class="java.net.URI" id="dbUrl">
<constructor-arg value="#{systemProperties['JDBC_CONNECTION_STRING']}"/>
</bean>
<bean class="java.net.URI" id="dbUrl">
<constructor-arg value="#{systemEnvironment['JDBC_CONNECTION_STRING']}"/>
</bean>
もJavaで
URI dbUrl = URI.create(System.getProperty("JDBC_CONNECTION_STRING"));
マイドッキングウィンドウのコンフィグを試してみました。値を更新するたびにdocker-compose build
とdocker-compose up
を使用しました。
ドッキングウィンドウ-compose.yml
app:
build: .
command: catalina.sh run
ports:
- "8888:8080"
links:
- postgres
volumes:
- /usr/bin
postgres:
image: postgres:9.5
ports:
- "5432"
volumes:
- /var/lib/postgresql/data
Dockerfile
FROM tomcat:jre8
ENV JDBC_CONNECTION_STRING 'postgres://postgres:[email protected]:5432/mydb'
RUN ["rm", "-fr", "/usr/local/tomcat/webapps/ROOT"]
RUN apt-get update && apt-get install -y net-tools postgresql-client
COPY ./target/myapp.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh", "run"]
私はコンテナのバッシュに接続すると、set
コマンドは私の変数を表示しません。 しかし値を示すecho $JDBC_CONNECTION_STRING
。
を行うことができますか? – user1935987
あなたは "私はコンテナのbashに接続すると、setコマンドは自分の変数を表示しませんが、値を示す$ JDBC_CONNECTION_STRINGをエコーします。"あなたはjavaシステムのプロパティに環境変数の値を渡すだけで、上記のcatalina.confに書いた行を追加して、イメージを再構築します。 –
はい、すでに完了しています。 – user1935987