docker-compose搭建免构建的应用

本文介绍了DockerCompose在简化开发流程、提高可移植性和管理多容器方面的优势,通过实例展示了如何用DockerCompose部署Node.js的egg项目和Java的jar项目,以及其免构建和自动重启等特性。
摘要由CSDN通过智能技术生成

概述

Docker Compose的好处
  • 简化开发流程:Docker Compose可以通过单个文件定义所有服务,并在单个命令下启动它们。
  • 可移植性:Docker Compose文件可以与其他开发人员和生产环境共享,确保在所有环境中都可以准确地部署应用程序。
  • 管理多个容器:Docker Compose可以管理多个容器,从而使部署和管理多个容器的应用程序更加容易。
  • 简化部署:Docker Compose可以一次性运行多个容器,从而简化了部署应用程序的过程。
免构建应用
  • 项目开发完成之后,不需要docker容器重新构建即可使用,特别是针对一些环境比较复杂的容器,减少docker构建过程,只是需要重新启动即可。
  • 隔离运行环境,无需再宿主机里面部署,只是需要启动容器即可

例子1:服务器中部署egg项目

常规部署
  • 环境:安装node环境
  • 管理应用+自动启动:安装pm2、或者书写脚本等(有可能还需要配合定时任务才能做到服务保障)
通过docker-compose免构建部署
| - node-egg
    | - data
        ...         egg项目
    | - logs        日志文件
    | - env        
        | - node16
            | - bin 
                | - node 可执行文件
                | - yarn 可执行文件
                | - npm 可执行文件
version: '3'

services:
  node-egg:
    image: centos:centos7
    container_name: sskj-node-egg
    restart: always
    environment:
      - PATH=/env/node16/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    volumes:
      - ./node-egg/data:/data/src/
      - ./node-egg/logs:/root/logs/
      - ./node-egg/env:/env/
    ports:
      - 7010:7001
    command: bash -c "cd /data/src && yarn start"
    networks:
      - app_net
    
networks:
    app_net:
        driver: bridge
        ipam:
            config:
                - subnet: 10.11.0.0/16
  • 优点:会跟随docker启动而启动,服务停止之后,会自动重启
  • 查看日志可以通过:docker logs -f sskj-node-egg
  • 注意事项:egg中默认的npm run start 命令是运行在后台的,需要修改为前台运行

例子2:服务器中部署java中的jar项目

常规部署
  • 环境:安装java环境
  • 管理应用+自动启动:书写脚本+定时任务进行服务保障
通过docker-compose免构建部署
  • 项目目录架构如下
| - java-01
    | - data
        | - test.jar    项目文件
    | - logs            日志文件
    | - env
        | - java
            | - bin 
                | - java 可执行文件
version: '3'

services:
  java-01:
    image: centos:centos7
    container_name: sskj-java-01
    restart: always
    environment:
      - PATH=/env/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - LANG=en_US.UTF-8
    volumes:
      - ./java-01/data:/data/
      - ./java-01/logs:/data/logs
      - ./java-01/env:/env
    ports:
      - 8088:8088
    command: bash -c "cd /data && java -jar ./test.jar  --server.port=8088"
    networks:
      - app_net
    
networks:
    app_net:
        driver: bridge
        ipam:
            config:
                - subnet: 10.11.0.0/16

注意事项:java运行之后一定要保障在前台运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

光速度的进程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值