golang 线上项目部署折腾之一
最近自己使用
golang
折腾了一点东西,可是需要部署到线上才好玩,那么服务器使用了aws
,然后使用了docker
和没有使用docker
部署了一次。简单记录一下过程
aws
服务器
为什么使用aws呢,说实话,穷。可以免费使用一年干嘛不用。但是使用的时候注意了,每个月只有750小时,如果你开多台实例,那铁定要跑超了,要付高昂费用的呦。
至于怎么申请,我写了一个文章在微信里,点击这里,每个步骤都有.这样你就可以免费的玩起来了。
当然如果你不确定你使用了什么系统,有几个命令可以告诉你:
查看contos系统版本命令:
cat /proc/version
uname -a
uname -r- 查看版本
cat /etc/issue
cat /etc/redhat-release //使用Ubuntu的就不用试了
当然如果你不想一直
sudo
下去,sudo -i
可以切换到root
用户,反正是玩,无所谓
docker
安装
yum
安装docker
,方便快捷
安装依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
鉴于国内网络问题,强烈建议使用国内源.
执行下面的命令添加 yum 软件源:
yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
如果需要最新版本的 Docker CE 请使用以下命令:
yum-config-manager --enable docker-ce-edge
安装 Docker CE:
$ yum makecache fast
$ yum install docker-ce
启动 Docker CE
systemctl enable docker
systemctl start docker
建立 docker 用户组
如果是生产服务器的话,一般不会直接使用
root
,默认情况下,docker
命令会使用Unix socket
与Docker
引擎通讯。而只有root
用户和docker
组的用户才可以访问Docker
引擎的Unix socket
。出于安全考虑,一般Linux
系统上不会直接使用root
用户。因此,更好地做法是将需要使用docker
的用户加入docker
用户组
建立 docker 组:
sudo groupadd docker
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
这样就安装好了。
但是会有两个小问题:
1.如果你使用最新版的redhat,而且使用最新版的docker,肯定会出错。这有个地址,解决办法是:
yum install --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
也就要不使用最新版本就好了,降低版本,希望你没有。
2.默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
请添加内核配置参数以启用这些功能。
tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
然后重新加载 sysctl.conf 即可
sudo sysctl -p
安装Golang
方法一:源码安装
下载二进制文件:
// 最新版
wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz
解压并创建工作目录:
tar -zxf go1.7.3.linux-amd64.tar.gz -C /usr/local/
mkdir /Golang
在 /etc/profile 添加环境变量:
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export GOPKG=$GOROOT/pkg/tool/linux_amd64
export GOARCH=amd64
export GOOS=linux
export GOPATH=/Golang
export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin
然后执行 source /etc/profile 使之生效
方法二:使用 yum 安装
先安装 EPEL 源:
yum install epel -y
然后使用 yum 安装 Golang:
yum install go -y
在 /etc/profile 添加环境变量:
export GOPATH=/Golang
export PATH=$PATH:$GOPATH/bin
然后执行 source /etc/profile 使之生效。
其他
还有安装git
,beego
框架等其他的一些配置就不用细说了,大家都会的东西说了多没意思。
先到这
参考文章:
https://yeasy.gitbooks.io/doc...
http://blog.csdn.net/u0127241...
golang 线上项目部署折腾之一的更多相关文章
- 吾八哥学k8s(二):golang服务部署到kubernetes
本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容.纯新手入门方式,生产服务需要完整的CI/CD流程来支持. golang服务代码 ...
- Golang项目部署
文章来源:https://goframe.org/deploymen... 一.独立部署 使用GF开发的应用程序可以独立地部署到服务器上,设置为后台守护进程运行即可.这种模式常用在简单的API服务项目 ...
- NodeJS项目迁移兼Ubuntu下NodeJS环境部署
前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...
- 以太坊系列之十六: 使用golang与智能合约进行交互
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- Golang错误和异常处理的正确姿势
Golang错误和异常处理的正确姿势 错误和异常是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从 ...
- 以太坊系列之十六:golang进行智能合约开发
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- Golang通脉之错误处理
在实际工程项目中,总是通过程序的错误信息快速定位问题,但是又不希望错误处理代码写的冗余而又啰嗦.Go语言没有提供像Java.C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛 ...
- 聚光灯下的熊猫TV技术架构演进
2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...
- C#调用WORD处理的实例代码(包含excel)
最近程序人生(http://www.manong123.com)一个朋友让我帮他做一个小功能,其实就是把WORD文档里的内容存到数据库里去,可以实现搜索并转EXCEL的功能,需求很简单,想不到加上部署 ...
随机推荐
- Zabbix监控平台
Zabbix监控平台 案例1:常用系统监控命令 案例2:部署Zabbi ...
- 路由与交换,cisco路由器配置,浮动静态路由
设置浮动静态路由的目的就是为了防止因为一条线路故障而引起网络故障.言外之意就是说浮动静态路由实际上是主干路由的备份.例如下图: 假如我们设路由器之间的串口(seria)为浮动静态路由(管理距离为100 ...
- Matlab入门(二)
数据类型 1.整形 有符号 1 字节整数 -27 - 27-1 int8() 有符号 2 字节整数 -215 - 215-1 int16() 有符号 4 字节整数 -231 - 231-1 int32 ...
- jsjsjs
var TooL = {}; (function(t){ function common(){ console.log("common"); } var a = function( ...
- SQL基础系列(3)-变量、函数、存储过程等
1. 变量 定义变量 DECLARE @a INT 赋值 PRINT @a ) --select 赋值 SELECT @name='zcx' PRINT @name SELECT @name=F ...
- zookeeper的下载安装和选举机制(zookeeper一)
1. 简要概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的框架.Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架它负责存储和管理大家都关心的 ...
- tcp协议:三次握手四次挥手详解-转
https://www.cnblogs.com/welan/p/9925119.html
- layoutInflater参数解析与源码分析
关于LayoutInflater方法,无论是在listview的适配器中,还是在动态添加view的时候,都会出现它的身影,最开始我在看<第一行代码>时,不知道这个方法实际的参数到底指的是什 ...
- for循环,for…in循环,forEach循环的区别
for循环,for…in循环,forEach循环的区别for循环通关for循环,生成所有的索引下标for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 } ...
- Xor Path 牛客,HPU--C--LCA
题解: 题目要求求出u和v两点在最短路径上的异或和.怎么确定最短路径呢?,就是U到LCA(u,v)的路径加上V到LCA(u,v).根据异或的性质,如k^a^a=k,即异或一个值两边等于原数值. 所以维 ...