如何将Spring Boot + React + MySQL应用程序停靠?

时间:2018-04-26 20:40:17

标签: mysql reactjs docker spring-boot

我一直在努力奋斗这一周。我有一个任务,我必须安装一个完整的CI环境,意思是:Jenkins与GitHub集成(只需一个推动即可启动管道),Sonarqube,Testlink,Mantis Bug跟踪器,Artillery,JUnit,MySQL和Spring Boot API后端消耗通过React前端。我已经在本地和单独测试了这些工具,并且它们可以工作。但是当我试图将它们集中起来时(为了协助我必须将MySQL,Sonarqube,Mantis和Testlink集成起来,但我想用一切来做),当我迷路的时候。我搜索了教程,并且我学到了很多东西,但我找不到如何做这件事。

我首先将Docker化MySQL数据库并将我的Spring Boot API连接到本地。有用。现在我想在docker容器中构建后端(mvn clean install)并部署它,但是在构建过程中,我在尝试连接MySQL时遇到错误,因为我在Dockerfile和Spring容器中执行此操作不了解MySQL。在数据库容器启动后,我不知道如何构建映像。我非常确定我必须使用docker compose,但我不知道在哪里/如何放置maven构建过程。

我猜我必须做这样的事情,所以后端知道数据库。在application.properties(在spring引导项目中)我必须像这样指定数据库连接:spring.datasource.url = jdbc:mysql://mysql-db:3306/db_name?useSSL=false

version: '3'
services:
  db:
    image: mysql:5.7
    volumes:
      - data-mysql:/var/lib/mysql
    container_name: mysql-db
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_USER: 'test'
      MYSQL_PASS: 'pass'
  app:
    image: app-0
    container_name: app
    ports:
      - 8081:8081
    depends_on:
      - db
volumes:
  data-mysql: 

正在使用此Dockerfile创建app-0,它正在尝试构建后端,但此时后端没有数据库,因此构建失败:

FROM maven:3.5.3-alpine
WORKDIR /usr/src
COPY . .
RUN mvn clean install

COPY target/spring-boot-backend.jar spring-boot-backend.jar
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "spring-boot-backend.jar"]

任何我尝试做的事情的完整例子都会受到赞赏(如果它与jenkins,testlink等有关,这是我将来必须做的事情。)< / p>

感谢。

0 个答案:

没有答案