golang進階(一)——glide的使用手冊

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

+++
title=”golang進階(一)——glide的使用手冊”
date=”2017-10-10”
tags=[“golang”,”glide”,”docker”]
categories=[“資源管理”]
description=”golang也有包管理,類似maven,gradle,npm,bower之類的”
featured=true
image=”img/201710/fengjing1.jpeg”
+++

golang的包管理軟體有很多,我選擇了glide,由於深中docker之毒,所以方式也就用docker的方式來了,看不懂的先補docker的課

glide的Dockerfile

直接把glide做成鏡像,基礎鏡像是golang,把兩者打包成一個golang的運行環境

Dockerfile檔案如下

FROM golang:1.8-jessieMAINTAINER lastsweetop "lastsweetop@163.com"RUN mkdir /root/app/WORKDIR /root/app/RUN go get github.com/Masterminds/glideRUN echo export GOPATH=/root/app >> /root/.bashrcCMD tail -f ~/.bashrc

docker build一下,glide的鏡像就製作好了,只要一個人做好鏡像,團隊裡的其他人直接用就可以,多方便的docker啊

stack檔案

另外docker run的命令列也太長了,雖然只用一台伺服器,一樣也有stack,把所有配置寫在stack的設定檔裡

version: "3"services:  dev:    image: www.lastsweetop.com:5000/godev    deploy:      replicas: 1      resources:        limits:          cpus: "0.1"          memory: 50M      restart_policy:        condition: on-failure    volumes:      - $PWD:/root/app

這樣本地的工程就與glide鏡像產生的容器結合了

glide操作

正題開始

glide init

這樣會產生一個glide.yaml檔案,格式如下

package: .import: []

如果代碼中新加了一個第三方包

package cmdimport (    "github.com/spf13/cobra")var RootCmd = &cobra.Command{    Use:   "hugo",    Short: "Hugo is a very fast static site generator",    Long: `A Fast and Flexible Static Site Generator built with                love by spf13 and friends in Go.                Complete documentation is available at http://hugo.spf13.com`,    Run: func(cmd *cobra.Command, args []string) {        // Do Stuff Here    },}

其實只需要

glide up

這樣就可以了,會自動安裝你所有新增的包,但是並不會出現在glide.yaml檔案中,不過沒關係,同事間的版本唯一性是由glide.lock控制的

hash: 3bac0e5b315ed9ae09f31bfae4f77c882ce25d42ccfa70f4dc9fe0cd0bef499fupdated: 2017-10-09T10:55:56.169042004Zimports:- name: github.com/inconshreveable/mousetrap  version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75- name: github.com/spf13/cobra  version: 50204810fdb5010baae72e4f41b303689cbdcc9f- name: github.com/spf13/pflag  version: a9789e855c7696159b7db0db7f440b449edf2b31testImports: []

除非需要指定包的特定版本,才需要修改glide.yaml檔案

目錄結構

這是一個大坑,其他資料都說放在工程的根目錄,其實是有歧義的,其實是放在GOPATH中的src檔案目錄下的任意一級

這是我的目錄結構

.├── README.md├── bin│   └── main├── pkg│   └── linux_amd64│       ├── lastsweetop.com│       └── vendor├── src│   ├── glide.lock│   ├── glide.yaml│   ├── lastsweetop.com│   │   ├── cmd│   │   ├── main│   │   ├── model│   │   └── tools│   └── vendor│       └── github.com└── stack-gonne.yml
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.