当前位置: 首页 > 知识库问答 >
问题:

由docker合成图像自动启动spring boot和卡桑德拉

栾越
2023-03-14

我正在尝试通过docker-compose创建docker图像。我怎么能做到?

我可以开始我的项目(spring boot+卡桑德拉)由docker-compose up。一切都很顺利。但在下一步,我想从这个项目图像,推动到docker hub和拉它从docker hub在其他计算机上测试。我尝试了“docker-compose build”、“docker-compose push”和“docker-compose pull”。拉后,我可以看到的信息,卡桑德拉和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

共有1个答案

翁硕
2023-03-14

docker-compose用于处理多个图像。我猜你是在想它会把两个图像合并成一个,这是不会发生的。

dockerrun用于一次只运行一个映像,这是因为引入了docker-compose

docker-compose updocker是否运行docker network create/add等命令为您创建环境。为了使用,

docker-compose build将生成docker-compose.yml文件中的所有图像。

Docker-Compose push将把所有图像推送到集线器。

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

最后,如果要运行这些映像,请使用docker-compose up。如果图像不存在,它将首先从集线器下载这些图像。

 类似资料:
  • 如果我们提供一个基于google cloud managed instance group概念的虚拟机,如何将新的虚拟机添加到集群中。 谢谢,

  • 首先,我对Cassandra很陌生,我来自关系数据库。我使用了Hibernate API,这使得与数据库相关的任务非常简单。我正在使用datastax中基于java的驱动程序来连接和执行查询。他们提供了实现JPA的映射库。到现在为止,一直都还不错。我创建了一个模型类,如下所示: 现在我想创建一个新的ChartData对象并将其保存到数据库中。为此,我想实现Mapper。 我配置了所有内容,仍然无法

  • 我有一个卡桑德拉集群,使用以下方法创建: 我使用的Eclipse版本如下: 现在,我编写了以下实体: 因为该表使用复合主键,所以我必须使用下面提到的结构:http://docs.spring.io/spring-data/cassandra/docs/1.0.2.RELEASE/reference/html/cassandra.core.html 所以我的活动密钥类是这样的: 我的控制器是这样的:

  • 我正在尝试使用Cassandra 2.1升级到Spring Data Cassandra 1.5. x的Spring Boot 1.5,但出现启动错误: 未能实例化[org.springframework.data.cassandra.mapping.CassandraMappingContext]:工厂方法“cassandraMapping”引发异常;嵌套异常为java.lang.NoClass

  • 我用mysql创建了一个jhipster应用程序,它正在运行。我可以添加、删除、列出一些记录等。mysql作为docker容器运行。使用jenkins,我创建了另一个docker映像,它被称为jhipster。现在,我可以用docker映像命令看到我的docker映像。我想作为容器启动我的jhipster应用程序,但我必须使用哪个commmand?(docker-compose up-d或dock

  • 我们一直在使用Spark RDD API(Spark 2.0)来处理在Cassandra.Note中建模的数据,这些数据在Cassandra中建模以实现高效的读写。 然而,现在还有SparkSQLAPI,Spark DataFrame API,它也是一种替代的数据访问方法-http://spark.apache.org/docs/latest/sql-programming-guide.html