docker -compose pu sh Spring Boot с несколькими службами MySQL - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в Docker, так что, пожалуйста, потерпите меня, если у меня нет хорошей asp концепции. В основном я пытаюсь подключить sh две службы к dockerhub - одно - это мое приложение Spring, а другое - MySQL, которое является моей базой данных. Я написал ниже Dockerfile для моего Java приложения:

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 - я не думаю, что возможно поместить sh эти две службы в dockerhub и заставить их «взаимодействовать» друг с другом из того, что у меня есть читать.

Как мне go отправить эти два отдельных образа в dockerhub, чтобы при извлечении образа приложение могло работать локально на разных машинах? Или их нужно делать отдельно?

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

В вашем случае вам нужно отправить sh только 1 сервис в Dockerhub, то есть Java сервис. Образ mysql уже опубликован, так что конфигурация не изменится.

Чтобы собрать docker образ для Spring, вы можете сделать

docker build -f Dockerfile .

Затем запустите свои команды для pu sh образа в 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

0 голосов
/ 18 июня 2020

Вам необходимо поместить sh каждый образ отдельно в dockerhub, и везде, где вы хотите использовать эти образы в тандеме, вы будете использовать файл compose для согласования между ними.

...