zoukankan      html  css  js  c++  java
  • 如何利用docker 构建golang线上部署环境

    公司最近开发了一个项目是用golang 写的,现在要部署到线上环境去,又不想在服务器上装单独的golang,决定用docker 封装下,直接打到镜像里面,然后就直接在hub.docker.com上面搜了下golang的镜像,直接就docker pull golang 最新的是1.9的版本

    然后参考官方的文档弄了下Dockerfile大概是这样:

    FROM golang
    MAINTAINER  jackluo
    #指定工作目录
    WORKDIR /go/src/ActivitApi
    COPY . .
    
    CMD ["/bin/bash", "build.sh"]

    build.sh里面的代码是这样,大概就是进入目录,编译golang ,最后运行编译好的server 文件

    #!/usr/bin/env bash
    cd /go/src/ActivitApi/server && go build && ./server

    其实可以直接运行编译好的.server 文件,因为每次启动的时候,它才去编译,可能启个服务,需要几秒钟的时间,我们写的大概编译再启动需要10秒左右的时间

    最后启用docker

    #!/usr/bin/env bash
    
    docker stop apihdtest
    docker rm apihdtest
    docker run -d --name apihdtest 
                -p 17071:17071 
                --link mysql:mysql.io 
                --link redis:redis.io 
                -v $(pwd):/go/src/ActivitApi 
                activityapi
    #docker exec -it apihdtest /bin/bash /go/src/ActivitApi/build.sh

    然后这个就启起来了

    最后,我们看下完整的截图吧

    仅参考.

  • 相关阅读:
    7.1 异常处理结构
    第 7 章 异常处理结构、代码测试与调试
    6.4.2 案例精选
    6.4.1 标准库 os、os.path 与 shutil 简介
    设计模式----装饰模式
    设计模式---单例模式
    设计模式--工厂方法模式
    设计模式-简单工厂模式
    设计模式基础知识
    更改Mysql数据库中的数据出现乱码问题
  • 原文地址:https://www.cnblogs.com/jackluo/p/7819975.html
Copyright © 2011-2022 走看看