如何利用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

然后这个就启起来了

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

 

仅参考.

时间: 2024-09-29 08:56:44

如何利用docker 构建golang线上部署环境的相关文章

利用Jekyll在GitHub Pages上部署博客

开始之前 我觉得阮一峰的<搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门>是一个很经典的入门,每个Jekyll初学者都应该先去看一看,另外GitHub Pages官网以及Jekyllcn也是遇到问题时首先要查找的站点. 需要对Git的基本操作有些了解: Git基本操作 ##设置全局用户名和email,作为每次提交的记录 git config --global user.name "name" git config --global us

mysql线上安装部署

线上部署考虑因素: 版本选择,5.1.5.5还是5.6? 5.1官方已不再维护,不建议 5.5是现在线上使用最多的版本 5.6最新的稳定版,已发布3年多,现在使用的也很多 分支选择,官方社区版?persona server ? Mariadb ? 官方版 推荐使用 persona server 管理性能上有改进,并且完全兼容mysql Mariadb 是mysql原班人马开发的 安装方式,包安装?二进制包安装源码安装? 线上推荐使用二进制包安装 路径配置,参数配置(尽量模板化.标准化) 一个实例

辩论:SEO博客能否成为从业者线上品牌构建的利器

  现今SEO博客可以说已经是十分的泛滥,我们随便搜索一个城市名加上seo,如福州SEO,就可以找到好几页相关博客信息.无可厚非,随着SEO的普以及日益受到重视,SEO从业者的大军愈发壮大,接踵而至的也是相关博客的壮大.作为一名优化人员绝大多数的人建立SEO博客目的很明显就像想通过它打造个人品牌,因为个人品牌的好坏将影响着SEO接单.做SEO的可能没有几个不认识ZAC博客.卢松松博客,那么我们是否也要像这些博客学习为了构建自己的线上品牌而建立seo博客?可能大家都有不同的观点,有同意,也有反对,

Garena黄智凯:Docker构建自动化运维

文章讲的是Garena黄智凯:Docker构建自动化运维,本文根据[2016 第七届中国数据库技术大会](微信搜索DTCC2014,关注关注中国数据库技术大会公众号)现场演讲嘉宾黄智凯老师分享内容整理而成.录音整理及文字编辑IT168@ZYY@老鱼 讲师简介 来自新加坡最大的互联网公司Garena,曾就职于新浪和奇虎360,DBA背景成长的他同时一直致力于运维平台自动化的建设和创新 正文 大家好,我是来自Garena公司的黄智凯,大家可能对Garena比较陌生,Garena最开始做游戏运营,现在

业务技术协同线上化的研发管理实战

摘要:2017年1月13日举办的[云栖计算之旅]线下沙龙第4期研发管理专场,阿里巴巴B2B事业群产品专家代平为大家带来了题为业务技术协同线上化的研发管理实战的演讲.本文主要从管理产品研发的理念开始谈起,着重说明了云效指挥部的六大步骤,最后对使用产品的效果进行了简要分析.一起来欣赏吧. 以下是精彩内容整理: 我叫代平,是阿里巴巴的一位产品经理,负责云效平台研发综合效能管理产品的设计,这款产品目前已经支撑了阿里巴巴1688.国际站.村淘.速卖通.合一集团土豆以及外部的金融.保险等行业的公司.这些公司

线上K歌替换传统KTV包间点歌系统

具体做法是利用唱吧的线上K歌系统把线下每个包间联系起来,直接替换掉传统KTV包间里的点歌系统. 颠覆与被颠覆的故事,各行各业都在悄然上演. 如果说小米颠覆了传统手机行业:乐视颠覆了电视机厂商.那么,唱吧则正在悄悄地改变着传统音乐的演绎形式. 唱吧App,被称为手机里的"KTV",从2012年5月正式上线至今,唱吧的爆发性增长让这个年轻的团队始料未及.发布3天登上App Store免费金榜top10:5天后飙升总榜NO.1:日活跃用户数百万:目前用户量更是高达1.7亿. 这一系列数据背后

关于线上与线下性能测试结果的差异

有几个学员经常会对线上与线下测试结果不一样的问题产生纠结....所以还是统一写一篇这样的文章吧 其实这个问题本身不用纠结,就好比再牛逼的双胞胎还是有他们不一样的地方.本身性能测试就是一个预估风险.排查瓶颈.了解系统现有性能的一个手段.就好比小时候你是个好孩子,但不意味这你长大了也是一个好孩子,也许你会像海波兄那样的.....so,性能测试只是一种手段,减小风险的方法而已. 再者,本身线上和线下的测试结果就不太具有可比性,原因为: 1.线下与线上机器环境配置的差异 2.线下和线上业务数据的差异,虽

利用Docker和阿里云容器服务部署高可用Ghost博客集群

简介 Ghost是一个流行的开源博客平台(Open source blogging platform),基于 Node.js 构建,博客内容默认采用 Markdown 语法书写,给用户提供一种更加纯粹的内容写作与发布平台. Ghost的部署和运维需要一定的Web开发基础,利用Docker技术可以大大简化Ghost的部署和更新.Docker Hub上面也提供了Ghost官方镜像 使用Docker镜像,不懂得Node.Js的同学也可以分分钟在本地或阿里云容器服务上搭建起一个单节点的Ghost博客,但

Docker -- 2 -- 利用docker部署网站和数据库

在Docker – 系统整洁之道 – 1中已经对Docker的一些命令和Docker镜像的使用及操作做了记录. 这次就利用docker进行一次真正的实例使用,使用docker搭建一个简单的答题系统,这个系统是当时做来给网络安全周做手机答题的系统,很简单,代码风格很差. 这篇主要记录了三种docker使用的方式. 用supervisor方式运行一个多进程的docker实例 创建一个ngnix和php运行的环境 创建一个ngnix,php,mysql集合运行的环境,使用docker-compose构