docker-compose部署一个springboot项目(包含环境)

docker-compose部署一个springboot项目(包含环境)

搭建docker及docker-compose环境

【说明】首先对于环境的搭建

  • docker环境搭建

    # 安装需要的软件包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # 设置stable镜像仓库
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 更新yum软件索引
    yum makecache fast
    # 安装Docker-ce
    yum -y install docker-ce
    # 启动Docker
    systemctl start docker
    # 开机自启
    systemctl enable docker
    # 配置Docker镜像加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://c2yf9ia3.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  • docker-compose环境搭建

    # 这里下载可能有点慢
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
    # 配置权限
    sudo chmod +x /usr/local/bin/docker-compose
    

    【警告】注意这里我选择的是1.29.2版本,因为我的docker版本是最新的,所以选择docker-compose也是最新的

  • 创建一个公共的docker网络

    • docker network ls

      image-20230411165203178

    • 创建命令为docker network create kuocai_network

  • 编写dockerfile文件

    #环境
    FROM openjdk:8-jdk-alpine 
    #日期问题,8小时差解决
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
    # 这个可以不加,直接运行
    COPY test-project-0.0.1-SNAPSHOT.jar /test-project.jar
    CMD ["java","-jar","test-project.jar"]
    
  • 上传打包的test-project.jar包到dockerfile同级目录下执行以下命令

    # test-project为镜像的名称,默认没给版本号就是最新版,如果指定build版本可用test-project:1.0
    docker build -t test-project .
    
  • 编写docker-compose.yml文件

    version: '3'
    services:
      web:
        image: test-project
        environment:
          SPRING_DATASOURCE_URL: jdbc:mysql://test-project-mysql:3306/test_cdn?serverTimezone=Hongkong&useAffectedRows=true&characterEncoding=utf-8
          SPRING_DATASOURCE_USERNAME: root
          SPRING_DATASOURCE_PASSWORD: test123
          SPRING_REDIS_HOST: test-project-redis
          SPRING_REDIS_PORT: 6379
          SPRING_REDIS_PASSWORD: test123
          SPRING_STORAGE_TYPE: minio
          SPRING_MINIO_URL: http://test-project-minio:9000
          SPRING_MINIO_ACCESS_KEY: test
          SPRING_MINIO_SECRET_KEY: test123
        ports:
          - "8086:8080"
        depends_on:
          - test-project-mysql
          - test-project-redis
          - test-project-minio
        networks:
          - kuocai_network
      test-project-mysql:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: test123
          MYSQL_DATABASE: test_cdn
          MYSQL_USER: test
          MYSQL_PASSWORD: test123
          MYSQL_LOWER_CASE_TABLE_NAMES: 1
          MYSQL_LOWER_CASE_COLUMN_NAMES: 1
        ports:
          - "3309:3306"
        volumes:
          - ./mysql:/var/lib/mysql
        networks:
          - kuocai_network
      test-project-redis:
        image: redis
        ports:
          - "6376:6379"
        volumes:
          - ./redis.conf:/usr/local/etc/redis/redis.conf
          - ./redis-data:/data
        command: redis-server /usr/local/etc/redis/redis.conf
        networks:
          - test_network
      test-project-minio:
        image: minio/minio
        environment:
          MINIO_ACCESS_KEY: test
          MINIO_SECRET_KEY: test123
          MINIO_LOG_LEVEL: debug
        ports:
          - "9002:9000"
          - "9003:9001"
        command: server /data
        volumes:
          - ./data:/data
        networks:
          - kuocai_network
    networks:
      kuocai_network:
        driver: bridge
    

    【警告】上面的端口映射其实可以去掉的,因为他们都在同一个network下面,所以根据容器名称就可以直接访问了,同时springboot的配置文件中也是配置web.environment下的东西

  • 最后执行docker-compose up -d

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要使用docker-compose部署包含MySQL的Spring Boot项目,您可以按照以下步骤创建要连接的数据库和表: 1. 创建一个docker-compose.yml文件,并在其中定义您的服务。以下是一个示例: ```yaml version: '3' services: mysql: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: your_database_name MYSQL_USER: your_username MYSQL_PASSWORD: your_password volumes: - ./mysql-data:/var/lib/mysql app: build: . depends_on: - mysql ports: - 8080:8080 environment: SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/your_database_name?useSSL=false SPRING_DATASOURCE_USERNAME: your_username SPRING_DATASOURCE_PASSWORD: your_password ``` 在上面的示例中,我们定义了两个服务:mysql和app。mysql服务使用了mysql:latest镜像,并设置了环境变量来配置MySQL的根密码、数据库名称、用户名和密码。此外,我们还将MySQL的数据目录映射到了本地的mysql-data目录。 app服务是您的Spring Boot应用程序服务。它依赖于mysql服务,并将应用程序的端口映射到主机的8080端口。还设置了Spring Boot应用程序的数据源URL、用户名和密码,以便连接到MySQL容器。 2. 在与docker-compose.yml文件相同的目录中,创建一个Dockerfile文件来构建您的Spring Boot应用程序镜像。以下是一个示例: ```Dockerfile FROM openjdk:8-jdk-alpine COPY target/your-app.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 在上面的示例中,我们使用了openjdk:8-jdk-alpine作为基础镜像,并将应用程序的JAR文件复制到了容器内的app.jar路径。然后,我们使用ENTRYPOINT指令来指定容器启动时运行的命令。 3. 使用以下命令构建和启动容器: ```bash docker-compose up --build ``` 这将使用docker-compose.yml文件中定义的配置构建和启动容器。MySQL容器将创建并运行,并且您的Spring Boot应用程序将在app容器中构建和启动。 4. 一旦容器启动,您可以通过访问http://localhost:8080来访问您的Spring Boot应用程序。您可以使用应用程序中定义的API来创建数据库和表。 请注意,上述示例是一个起点,您可以根据您的具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只牛博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值