使用docker构建golang线上部署环境的步骤详解

Docker用于开发

Docker不仅用于部署,它还可以用于开发。

1、为什么要在开发中使用Docker

主要有以下几个原因。

1)一致的开发环境

使用Docker,可以保证整个研发团队使用一致的开发环境。

2)开发环境与最终的生产环境保持一致

这减少了部署出错的可能性。

3)简化了编译和构建的复杂性

对于一些动辄数小时的编译和构建工作,可以用Docker来简化。

4)在开发时只需Docker

无需在自己的开发主机上搭建各种编程语言环境。

5)可以使用同一编程语言的多个版本

可以使用同一编程语言(如python, python, ruby, ruby, java, node)等的多个版本,无需解决多版本冲突的问题。

6)部署很简单

应用程序在容器中运行,和在生产环境中部署运行是一样的。只需打包你的代码并部署到带有同样镜像的服务器上,或者是把代码连同原镜像建立一个新Docker镜像再直接运行新镜像。

7)使用自己喜欢的开发IDE

仍然可以继续使用自己喜欢的开发IDE,无需运行VirtualBox虚拟机或SSH。

引言

公司最近开发了一个项目是用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

然后这个就启起来了

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • 详解如何在 Docker 中设置 Go 并部署应用

    嗨,在本教程中,我们将学习如何使用 docker 部署 golang web 应用程序. 你可能已经知道,由于 golang 的高性能和可靠性,docker 是完全是用 golang 写的.在我们详细介绍之前,请确保你已经安装了 docker 以及 golang 并对它们有基本了解. 关于 docker Docker 是一个开源程序,它可以将应用及其完整的依赖包捆绑到一起,并打包为容器,与宿主机共享相同的 Linux 内核.另一方面,像 VMware 这样的基于 hypervisor 的虚拟化操

  • Docker与Golang的巧妙结合

    Docker与Golang的巧妙结合 [编者的话]这是一个展示在使用Go语言时如何让Docker更有用的提示与技巧的简辑.例如,如何使用不同版本的Go工具链来编译Go代码,如何交叉编译到不同的平台(并且测试结果!),或者如何制作真正小的容器镜像. 下面的文章假定你已经安装了Docker.不必是最新版本(这篇文章不会使用Docker任何花哨的功能). 没有go的Go ...意思是:"不用安装go就能使用Go" 如果你写Go代码,或者你对Go语言有一点点兴趣,你肯定要安装了Go编译器和Go

  • docker中部署golang项目的步骤详解

    理解Docker Docker可以帮您为自己的应用程序创建一个单一的可部署"单位".这样的单位也叫做容器,其中包含了应用程序需要的一切.例如代码(或二进制文件).运行时.系统工具,以及系统库文件.将所有这些需要的内容打包为一个单一的单位,可确保无论将应用程序部署在何处,都能提供完全相同的环境.这种技术还可以帮您维持完全一致的开发和生产环境,通常这些环境是很难被追踪的. 一旦搭建完成,容器的创建和部署将可自动进行.这本身就可以避免一系列问题.这些问题中大部分都是因为文件不同步,或开发和生

  • 使用docker构建golang线上部署环境的步骤详解

    Docker用于开发 Docker不仅用于部署,它还可以用于开发. 1.为什么要在开发中使用Docker 主要有以下几个原因. 1)一致的开发环境 使用Docker,可以保证整个研发团队使用一致的开发环境. 2)开发环境与最终的生产环境保持一致 这减少了部署出错的可能性. 3)简化了编译和构建的复杂性 对于一些动辄数小时的编译和构建工作,可以用Docker来简化. 4)在开发时只需Docker 无需在自己的开发主机上搭建各种编程语言环境. 5)可以使用同一编程语言的多个版本 可以使用同一编程语言

  • IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境的步骤详解

    之前给大家在博文中讲过如何通过eclipse快速搭建SSM开发环境,但相对而言还是有些麻烦的,今天玄武老师给大家介绍下如何使用IntelliJ IDEA基于SpringBoot来更快速地搭建SSM开发环境,相比于传统搭建方式,极少的配置文件和配置信息会让你彻底爱上它. 环境搭建步骤详解 第1步:创建Spring Initializr项目 在IntelliJ IDEA中新建项目,选择Spring Initializr,JDK版本选择自己安装的版本(首次使用可能显示没有,那么就点击New去按照步骤创

  • vscode C++开发环境配置步骤详解(教你如何用vscode编写写C++)

    用了一段时间的cb,Devc++,但一直感觉cb的高亮太差,而Devc++使用体验差(尤其是代码补全功能),换过vs2017,但是由于其太大了,卡顿十分明显,所以最终选择了vscode这款轻量级编译器.由于自己在配置c++开发环境时遇到了不少问题,因此特地写了这篇博文,希望能够帮助后来者快速实现c++环境配置. 步骤一:下载vscode 直接进入vscode官网下载即可,要注意选择与自己系统符合的版本. 官网地址:https://code.visualstudio.com/?wt.mc_id=D

  • VSCode 搭建 Arm 远程调试环境的步骤详解

    简介 前提条件: 确保本机已经安装 VS Code. 确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server. VSCode 已经安装了插件 C/C++. 本次搭建的环境: 主机:windows 10 服务器:ubuntu 16.04 VSCode 版本:February 2020 (version 1.43) Arm:海思 3559A (已配置好编译工具链和 gdb server) 连接远程主机 Remote Development 首先安装 Remote Dev

  • 使用git迁移Laravel项目至新开发环境的步骤详解

    对于如何创建一个Laravel项目,相信对新接触Laravel的朋友并不存在太多的问题,但是今天我们要来看一下如何将已有的Laravel项目迁移(复制)到新的开发环境. 我们需要用到的工具是git,如果你不知道git是什么,这里有一个传送门,看完之后再回来: http://github.com 简单说来,git就是Github开发的VCS(Version Control System),即版本控制系统.如果你使用过SVN,那么你应该很清楚版本控制是什么. 本文的示例环境是Ubuntu 16.04

  • Electron整合React使用搭建开发环境的步骤详解

    简介 用于构建用户界面的 JavaScript 库 步骤 首先创建React npx create-react-app doc 进入到doc项目 cd doc 安装electron npm install electron --save-dev 安装依赖 判断是否为生产环境 cnpm install electron-is-dev --save-dev 在项目根目录创建main.js const { app ,BrowserWindow } = require('electron') const

  • Windows上CLion的配置步骤详解

    一 概述 下载CLion 二 免费使用策略 1. 通过免费试用30天福利,30天福利时间过后,通过清除个人电脑缓存,继续享受福利 2. 通过学生证.教师证或者edu邮箱获取,在校学生的福利: 3. 也可以通过自己的开源项目来进行申请,这个对于初学者要求比较高: 二 配置本地C编译工具MinGW 在配置Clion的环境之前,我们需要在Windows系统上安装编译工具MinGW 根据我的博客进行安装配置:使用MinGW使Windows通过gcc实现C或C++程序本地编译执行 三 配置Clion开发环

  • Vue源码之rollup环境搭建步骤详解

    目录 搭建环境 建立rollup配置文件 创建入口文件 打包前准备 打包 测试一下 搭建环境 第一步 进行初始化,在终端输入npm init -y生成package.json文件,可以记住所有开发相关的依赖. 第二步 --在终端输,入安装依赖 npm install rollup rollup-plugin-babel @babel/core @babel/preset-env --save-dev 注: 安装rollup打包工具,可能需要编译高级语法所以需要安装babel,安装babel需要在

  • 在eclipse中安装Scala环境的步骤详解

    1安装eclipse插件步骤,点击help,选择Eclipse Marketplace 2.输入Scala,点击go 3.选择搜索到的Scala IDE 4.7.x,点击install下载. 4.等待进度条加载完,选择全部,之后点击confirm,之后选择同意 5.等待下载完毕,重启即可 另外 1.导入scala项目后可能报错,会不识别,右键configure--选中Add Scala Nuture,错误就没了 2.运行scala项目时,会出现找不到类或无法加载主类,这是由于eclipse没有编

  • gitee命令行上传项目的步骤详解

    1.注册gitee账户 2.登录gitee新建个仓库,用来存放项目 3.找到需要上传的项目,右键,git bash here 这里需要先去官网下载安装git git官网 4.git init命令在当前文件夹下创建一个本地仓库 5.git remote add origin 远程仓库地址 6.对需要上传的项目添加追踪,git add .代表当前文件夹下的所有文件都添加追踪 git add "项目名" 单独给某个项目添加追踪 7.先提交到本地仓库 git commit -m "提

随机推荐