簡體   English   中英

docker-compose 推送多個服務 Spring 引導 MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM