[英]Spring Boot + docker-compose + MySQL: Connection refused
[英]docker-compose push Multiple Services Spring Boot MySQL
我對 Docker 很陌生,所以如果我對這些概念沒有很好的理解,請多多包涵。 基本上我正在嘗試將兩項服務推送到dockerhub
- 一項是我的 Spring 應用程序,另一項是 MySQL 這是我的后端數據庫。 我為我的 Java 應用程序編寫了以下Dockerfile
:
FROM openjdk:15-jdk-alpine
COPY application/target/application.jar /application.jar
ENTRYPOINT ["java", "-jar", "/application.jar"]
這是我的docker-compose.yml
文件。
version: '3'
services:
application-db:
restart: always
container_name: application-db
image: 'mysql:5.7.30'
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: application_database
MYSQL_USER: alee
MYSQL_PASSWORD: anotherpassword
ports:
- '3308:3306'
volumes:
- './initial.sql:/docker-entrypoint-initdb.d/initial.sql'
application-app:
restart: on-failure
image: decade3/sim_backend:first_commit
build: ./
expose:
- '8080'
ports:
- '8080:8080'
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://application-db:3306/application_database?useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: alee
SPRING_DATASOURCE_PASSWORD: anotherpassword
depends_on:
- application-db
當我docker-compose up
一切都在本地運行,並且我能夠使用足夠的 http 請求在本地運行我的應用程序並與 mysql 數據庫交互。
現在我正在嘗試將docker-compose push
送到 dockerhub - 我認為不可能將這兩個服務推送到 dockerhub 並讓它們從我所閱讀的內容中相互“交互”。
我如何 go 關於將這兩個單獨的圖像推送到 dockerhub 中,以便當我拉取圖像時,應用程序能夠在不同的機器上本地運行? 還是必須分開做?
在您的情況下,您只需將 1 個服務推送到 Dockerhub,即 Java 服務。 mysql 鏡像已經是公共鏡像,因此配置不會改變。
要為 spring 構建 docker 映像,您可以這樣做
docker build -f Dockerfile .
然后運行命令將圖像推送到 dockerhub
並且您的生產 docker-compose.yml 變為(應用程序服務的通知圖像)
version: '3'
services:
application-db:
restart: always
container_name: application-db
image: 'mysql:5.7.30'
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: application_database
MYSQL_USER: alee
MYSQL_PASSWORD: anotherpassword
ports:
- '3308:3306'
volumes:
- './initial.sql:/docker-entrypoint-initdb.d/initial.sql'
application-app:
restart: on-failure
image: DOCKERHUB_IMAGE_PATH:latest
build: ./
expose:
- '8080'
ports:
- '8080:8080'
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://application-db:3306/application_database?useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: alee
SPRING_DATASOURCE_PASSWORD: anotherpassword
depends_on:
- application-db
您需要將每個圖像單獨推送到 dockerhub,並且無論您想在何處串聯使用這些圖像,您都將使用 compose 文件在它們之間進行編排。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.