docker 方式部署生产环境简化版

安装准备

Docker 环境准备

需要提前安装好 docker 与 docker-compose
1.检查docker

# docker version 
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:20:16 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:23:58 2018
  OS/Arch:      linux/amd64
  Experimental: false

2.检查 docker-compose

# docker-compose version 
docker-compose version 1.21.2, build a133471
docker-py version: 3.3.0
CPython version: 3.6.5
OpenSSL version: OpenSSL 1.0.1t  3 May 2016
镜像准备

此处为项目所需的本地镜像和官方镜像,在此不再赘述。(将项目所需要的zip包放deploy目录下)
执行解压操作

unzip -oq -d ./data/web/ ./deploy/learner-web.zip
unzip -oq -d ./data/web/ ./deploy/console-web.zip
unzip -oq -d ./data/web/ ./deploy/lmsapi.zip
unzip -oq -d ./apps/ ./deploy/parim-spark.zip

此举后端工程为springboot console端和前端为angular工程,打包命令总结如下

管理端前端(只有一个工程) : npm run build
学员端工程(多个工程): ng build learner-web(要打包的工程名)
#管理端/前端工程打完包需要到dist目录下

eclipse gradle工程打包命令
打jar包:gradle build
打zip包:gradle clean mkZip -x test -x javadoc -Denv=dev

当本地gradle版本过高可使用gradlew进行处理
打jar包:./gradlew build
打zip包:./gradlew clean mkZip -x test -x javadoc -Denv=dev

-Denv=dev指定分支,不指定默认dev
docker环境配置
  1. 从GitHub上所需分支,放置docker目录下
    git clone url.....
    image.png

    2.docker-compose 用到的几个命令
docker-compose up -d  #创建并启动所有容器服务器
docker-compose up -d mysql-server  #单独启动某一个容器,注意 mysql-server名字需要与compose.yml文件一致
docker-compose restart mysql-server #重启某一个容器
docker-compose ps  #查看容器运行状态

3.外部访问容器,比如连接数据库,需要将端口号映射出来,否则docker-compose可访问,但是外界访问不到
执行docker-compose ps查看情况

[parim@localhost bonc-dev]$ docker-compose ps
           Name                         Command               State                 Ports              
-------------------------------------------------------------------------------------------------------
bonc-dev_activemq_1          /bin/bash ./bin/docker-ent ...   Up      61616/tcp, 8161/tcp              
bonc-dev_app_1               /bin/bash ./bin/docker-ent ...   Up      8091/tcp, 8092/tcp               
bonc-dev_doc-converter_1     /bin/bash ./bin/docker-ent ...   Up                                       
bonc-dev_mongo-server_1      docker-entrypoint.sh mongod      Up      27017/tcp                        
bonc-dev_mysql-server_1      docker-entrypoint.sh mysqld      Up      0.0.0.0:3308->3306/tcp, 33060/tcp #已经映射
bonc-dev_nginx_1             nginx -g daemon off;             Up      0.0.0.0:12380->80/tcp    #已经映射        
bonc-dev_redis-server_1      docker-entrypoint.sh redis ...   Up      6379/tcp              #没有映射            
bonc-dev_video-converter_1   /bin/bash ./bin/docker-ent ...   Up  

映射需要在docker-compose.yml文件进行端口的配置

 mysql-server:
    image: mysql:5.7
    ports:
      - "3308:3306"    #增加ports设置,3308为映射外部端口,3306为MySQL原端口
    volumes:
      - "./db/mysql/data:/var/lib/mysql"
      - "./db/mysql/conf.d:/etc/mysql/conf.d"
    # hostname: mysql-server
    user: 1000:1000
    tty: true
    environment:
      - MYSQL_ROOT_PASSWORD=***
      - TZ=Asia/Shanghai
      - MYSQL_USER=***
      - MYSQL_PASSWORD=***
      - MYSQL_DATABASE=***
    restart: always

你可能感兴趣的:(docker 方式部署生产环境简化版)