gpt4 book ai didi

java - 通过docker compose制作镜像自动启动Spring Boot和Cassandra

转载 作者:行者123 更新时间:2023-12-02 02:50:56 24 4
gpt4 key购买 nike

我正在尝试通过 docker-compose 创建 docker 镜像。我怎样才能做到这一点?

我可以通过 docker-compose up 启动我的项目(spring boot + cassandra)。一切都很好。但在下一步中,我想根据这个项目镜像进行制作,推送到 docker hub 并将其从 docker hub 中拉出以在其他计算机上进行测试。我尝试了“docker-compose build”、“docker-compose push”,然后“docker-compose pull”。 pull后我可以看到cassandra和spring-boot-app已下载的信息。但是,当我想通过“docker run”运行这个镜像时,它只运行 springboot,而不运行 cassandra。

这是我的 docker-compose.yaml 文件:

version: '3'

services:
cassandra:
build:
context: ../
dockerfile: docker/cassandra/Dockerfile
ports:
- "9042:9042"
container_name: cassandra

spring-boot-cassandra:
build:
context: ../
dockerfile: docker/springbootsample/Dockerfile
links:
- cassandra
ports:
- "8080:8080"
environment:
SPRING_DATA_CASSANDRA_CONTACT_POINTS: cassandra
container_name: springboot
entrypoint: /wait-for-it.sh cassandra:9042 -- java -Djava.security.egd=file:/dev/./urandom -jar app.jar
depends_on:
- "cassandra"
image: myrepo/springbootsample


networks:
default:
driver: bridge

最佳答案

docker-compose 用于处理多个图像。我猜您认为它将把两个图像合并为一个,但这不会发生。

docker run 用于一次仅运行一个镜像,这是由于引入了 docker-compose 造成的限制。

docker-compose up 执行 docker rundocker network create/add 等命令来创建环境。使用时,

docker-compose build 将构建 docker-compose.yml 文件中存在的所有镜像。

docker-compose push 会将所有图像推送到中心。

docker-compose pull 将从集线器下载这些镜像(如果存在)。

最后,如果您想运行这些镜像,请使用docker-compose up。如果图像不存在,它将首先从中心下载这些图像。

关于java - 通过docker compose制作镜像自动启动Spring Boot和Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57108975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com