我一直在努力奋斗这一周。我有一个任务,我必须安装一个完整的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>
感谢。