Я создаю 2 docker-контейнера "app" и "db" через файл docker-compose.
Сервер приложений просто устанавливает java / tomcat через Dockerfile, который docker-compose использует для сборки.
Сервер БД использует образ MS SQL.
Когда яrun: docker-compose up
Я следую, что в процессе сборки программного обеспечения мне нужно загрузить, который развертывает war в каталог tomcat на сервере приложений и создает базу данных на сервере базы данных.
Моя проблема: Процесс сборки может ссылаться на localhost: 8080 для установки / исправления программного обеспечения на сервер приложений и на localhost: 1433 для установки / исправления части базы данных программного обеспечения на сервере базы данных.Однако, когда я запускаю Tomcat, система не подключается к сети, потому что сервер приложений не может подключиться к серверу базы данных через «localhost: 1433», поэтому он требует, чтобы я скачал и обновил файл свойств после сборки до внутренней док-станцииIP-адрес и ТОГДА он работает.
У меня такой вопрос: как я могу заставить свой локальный хост и контейнер моего приложения ссылаться на БД таким же образом в URL базы данных?
Dockerfile дляСервер приложений:
FROM centos:centos7
COPY apache-tomcat-9.0.20.tar.gz /tmp/
WORKDIR /tmp/
RUN yum -y update
RUN yum -y install java-11-openjdk-devel
RUN tar -xf apache-tomcat-9.0.20.tar.gz
RUN mv apache-tomcat-9.0.20 /opt/tomcat/
RUN export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/
RUN export PATH=$PATH:$JAVA_HOME/jre/bin
RUN export CATALINA_HOME=/opt/tomcat/
RUN export PATH=$PATH:$CATALINA_HOME/bin
WORKDIR /opt/tomcat/webapps
RUN mkdir testapp
enter code here
enter code here
Файл Docker-Compose:
version: '3.3'
services:
db:
image: "mcr.microsoft.com/mssql/server:2017-latest"
restart: always
volumes:
- db_data:/var/lib/mssql
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=Test123
network_mode: bridge
hostname: db
ports:
- "1433:1433"
app:
build: './testapp'
volumes:
- './system/build:/opt/tomcat/webapps/testapp/'
ports:
- "8080:8080"
- "8009:8009"
network_mode: bridge
tty: true
depends_on:
- db
volumes:
db_data: