Я пытаюсь закрепить мою весеннюю аппликацию.Докер. Весеннее приложение. set & get переменная окружения
Проблема: Я не могу получить переменную окружения в своем приложении 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 не показывает мою переменную, но echo $ JDBC_CONNECTION_STRING показывает значение». поэтому вам нужно передать значение переменной среды в java-системное свойство, просто добавьте строку, написанную выше в файле catalina.conf, и перестройте изображение. –
yes done done, thnx. – user1935987