docker compose推送多服务Spring Boot MySQL
我对Docker很陌生,所以如果我没有很好地掌握概念,请容忍我。基本上,我试图将两个服务推送到docker compose推送多服务Spring Boot MySQL,mysql,spring,docker,docker-compose,dockerfile,Mysql,Spring,Docker,Docker Compose,Dockerfile,我对Docker很陌生,所以如果我没有很好地掌握概念,请容忍我。基本上,我试图将两个服务推送到dockerhub——一个是我的Spring应用程序,另一个是我的后端数据库MySQL。我已经为我的Java应用程序编写了以下Dockerfile: FROM openjdk:15-jdk-alpine COPY application/target/application.jar /application.jar ENTRYPOINT ["java", "-jar", "/application.
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推送到dockerhub中,我认为不可能将这两个服务推送到dockerhub中,并根据我所读的内容让它们彼此“交互”
我如何将这两个独立的映像推送到dockerhub中,以便当我提取映像时,应用程序能够在不同的机器上本地运行?还是必须分开进行 您需要将每个图像分别推送到dockerhub,并且无论您想在哪里串联使用这些图像,您都将使用合成文件在它们之间进行编排。您需要将每个图像分别推送到dockerhub,无论您想在哪里串联使用这些图像,您将使用compose文件在它们之间进行编排。在您的情况下,只需将一个服务推送到Dockerhub,即Java服务。 mysql映像已经是公共映像,因此配置不会更改 要为spring构建docker映像,您可以执行以下操作
docker构建-f Dockerfile。
然后运行命令将图像推送到dockerhub
您的产品docker-compose.yml将变成(应用程序应用程序服务的注意图像)
在您的情况下,只需要将一个服务推送到Dockerhub,即Java服务。 mysql映像已经是公共映像,因此配置不会更改 要为spring构建docker映像,您可以执行以下操作
docker构建-f Dockerfile。
然后运行命令将图像推送到dockerhub
您的产品docker-compose.yml将变成(应用程序应用程序服务的注意图像)
我认为情况是:1。您可以将图像推/发布到注册表(Docker Hub或任何)2。将docker compose推送(共享)到公共/私有存储库3。您使用docker compose文件从注册表中提取图像我认为场景是:1。您可以将图像推/发布到注册表(Docker Hub或任何)2。将docker compose推送(共享)到公共/私有存储库3。您使用docker compose文件从注册表中提取图像非常感谢ssnk!非常感谢ssnk!
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