Я уже несколько дней пытаюсь сделать это, и думаю, что просто запутался в том, как работает сопоставление портов.По сути, у меня есть приложение Springboot, в котором я вставляю банку в контейнер докера и связываю его с контейнером mysql.Если я запускаю локально, я могу заставить его работать, но я пытаюсь заставить его работать, выполняя «локальный запуск eb», прежде чем перейти к попытке развернуть его на AWSasticbeanstalk.Ошибка, которую я получаю при запуске eb local run: «ERROR 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
В длинной трассировке стека я вижу такие вещи, как: Caused by: java.net.ConnectException: Connection refused (Connection refused)
main] o.s.b.a.orm.jpa.DatabaseLookup : Unable to determine jdbc url from datasource
Я пытался просмотреть ответы, подобные приведенным здесь,Я уверен, что перечислю проблему, но у меня просто не получается найти причину. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой линии связи
Вот мой application.properties внутри моего jar:
#Change the port that springboot starts up on
server.port=80
#For creating everything from scratch
spring.jpa.hibernate.ddl-auto=create
#For keeping the state of previous container
#spring.jpa.hibernate.ddl-auto=none
#For performance monitoring of hibernate should be false for any production release
#spring.jpa.properties.hibernate.generate_statistics=true
#url for local testing
spring.datasource.url = jdbc:mysql://mysql-docker-container:3306/maindb?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false
#url for deployment
spring.datasource.url = jdbc:mysql://elasticbeanstalk_mysqldockercontainer_1:3306/maindb?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false
#For Local Testing
#spring.datasource.url = jdbc:mysql://localhost:3306/maindb?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.username = root
spring.datasource.password = password
# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
#spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
Вот Dockerfile, который я создаю перед выполнением локального запуска eb (skyboundtrading - это просто образ ubuntu, который я загрузил с помощью java и mysqlcli)
FROM skyboundtrading
VOLUME /tmp
EXPOSE 80
ADD target/skyboundtrading-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
вот команда сборки, которую я использую перед выполнением локального запуска eb:
docker build -f ./skyboundtrading/Dockerfile -t skyboundtradingchild ./skyboundtrading
И, наконец, вот файл dockerrun.aws.jsonчто команда eb local run использует:
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "elasticbeanstalk_skyboundtradingchild_1",
"image": "skyboundtradingchild",
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": [
"elasticbeanstalk_mysqldockercontainer_1"
],
"environment": [
{
"name": "MYSQL_ROOT_PASSWORD",
"value": "password"
}
]
},
{
"name": "elasticbeanstalk_mysqldockercontainer_1",
"image": "mysql:latest",
"memory": 128,
"portMappings": [
{
"hostPort": 3306,
"containerPort": 3306
}
],
"environment": [
{
"name": "MYSQL_USERNAME",
"value": "root"
},
{
"name": "MYSQL_ROOT_PASSWORD",
"value": "password"
},
{
"name": "MYSQL_DATABASE",
"value": "maindb"
}
]
}
]
}
После запуска eb local run и сбоя запуска с ошибками, которые я выложил выше, у меня остается это в качестве состояния моего контейнера докера:
➜ CodeBase docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85cb5620f81c mysql:latest "docker-entrypoint.s…" 15 minutes ago Up 15 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp elasticbeanstalk_elasticbeanstalkmysqldockercontainer1_1
➜ CodeBase docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58d3e0bde90e skyboundtradingchild "java -jar app.jar" 15 minutes ago Exited (1) 15 minutes ago elasticbeanstalk_elasticbeanstalkskyboundtradingchild1_1
85cb5620f81c mysql:latest "docker-entrypoint.s…" 15 minutes ago Up 15 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp elasticbeanstalk_elasticbeanstalkmysqldockercontainer1_1
➜ CodeBase docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
skyboundtradingchild latest 5a2e6e961c0a 16 minutes ago 639MB
<none> <none> 9df92435b273 25 minutes ago 639MB
skyboundtrading latest fcf5653a0bbc 5 days ago 597MB
Любая помощь будет оценена. Я суперзастрял на этом ...