您的当前位置:首页正文

docker部署springboot父子级项目+mysql+redis菜鸟教程

2024-11-07 来源:个人技术集锦

1、项目结构

        本文以对tuling-admin模块部署为例。

        子模块tuling-admin依赖tuling-common和tuling-security。

2、打包方式:

      在tuling-single-mall上层文件夹管理模块的pom文件添加

  • <packaging>pom</packaging>
    在没有main方法的工具模块(maven模块)的pom文件添加
  • <packaging>jar</packaging>
    在有main方法的业务模块pom文件添加
  •  <packaging>jar</packaging>
        <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.yml</include>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.yml</include>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    使用springboot项目的根元素(root)的package打包

打包前的小插曲

        因为项目中使用了mysql和redis,在打包前需要将xml配置文件的host替换一下

如果打包过程中报错,报错信息如下:

解决方案为:

        在报错模块的pom.xml中加入:

    <properties>
        <!--打包是否测试连接数据库 -->
        <skipTests>true</skipTests>
    </properties>

如果打包过程中没有报错,则跳过解决方案操作。

言归正传:

3、编写dockerfile文件

新创建一个docker文件夹,将上述jar包复制进去,并创建一个dockerfile文件,内容如下:

# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER st
# 将jar包添加到容器中并更名为xtt_docker.jar
ADD tuling-admin-0.0.1-SNAPSHOT.jar admin_docker.jar
ENTRYPOINT ["java","-jar","/admin_docker.jar"]
#暴露8099端口作为微服务
EXPOSE 8099

4、创建镜像并运行容器

将上述创建好的docker文件夹(包含jar包和Dockerfile文件)发送到服务器

(1)创建镜像

cd docker
docker build -f Dockerfile -t admin-web .

运行容器前奏:

启动redis和mysql

docker pull mysql:5.5
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.5
docker pull redis
docker run -itd --name redis-test -p 6379:6379 redis

(2)运行容器:

eredis和emysql为redis和mysql用于连接的镜像命名

docker run -p 8099:8099 --name admin-web --link redis-test:eredis --link mysql-test:emysql -d admin-web

(3)查看日志方法

docker logs -f -t --tail 100 容器名

查看正在运行的容器

显示全文