首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Docker中设置Go Glide

在Docker中设置Go Glide
EN

Stack Overflow用户
提问于 2017-04-13 13:54:44
回答 1查看 974关注 0票数 0

我正在构建一个应用程序与Go和Glide在docker。我还必须使用reflex来自动触发编译。

我想不出怎么让Glide和docker一起工作。

Dockerfile

代码语言:javascript
复制
FROM golang:1.8.1-alpine

ENV GOBINARIES /go/bin
ENV BUILDPATH /code
ENV REFLEXURL=http://s3.amazonaws.com/wbm-raff/bin/reflex1.8a
ENV REFLEXSHA=19bdbbb68c869f85ee22a6b7fa9c73f8e5b46d0fe7a73df37e028555a6ba03e8

WORKDIR $GOBINARIES
RUN rm -rf /var/cache/apk/*
RUN wget -q "$REFLEXURL" -O reflex
RUN chmod +x /go/bin/reflex

ENV TOOLS /go/_tools

RUN mkdir -p $BUILDPATH
ENV PORT 5000
EXPOSE $PORT

RUN mkdir -p $TOOLS
ADD build.sh $TOOLS
ADD reflex.conf $TOOLS
RUN chown root $TOOLS/build.sh
RUN chmod +x $TOOLS/build.sh

WORKDIR $BUILDPATH
CMD ["reflex","-c","/go/_tools/reflex.conf"]

build.sh

代码语言:javascript
复制
set -e
echo "[build.sh:building binary]"
cd $BUILDPATH
glide install -s -v
go build -o /servicebin && rm -rf /tmp/*
echo "[build.sh:launching binary]"
/servicebin

reflex.conf

代码语言:javascript
复制
-sr '\.build$' -- sh -c '/go/_tools/build.sh'

docker-compose.yaml

代码语言:javascript
复制
version: '3'
services:
  logen:
    build:
      context: ./Docker
      dockerfile: Dockerfile
    ports:
    - "5000:5000"
    volumes:
    - .:/code

Atom on-save插件配置文件

代码语言:javascript
复制
[
  {
    "srcDir": ".",
    "destDir": ".",
    "files": "**/*.go",
    "command": "echo $(date) - ${srcFile} > .build"
  }
]

main.go

代码语言:javascript
复制
package main

import (
    "io"
    "log"
    "net/http"
    "os"
  "github.com/astaxie/beego"
)

func hello(w http.ResponseWriter, r *http.Request) {
    io.WriteString(w, "Hello world!1")
}

func main() {
    log.SetOutput(os.Stdout)

    port := ":" + os.Getenv("PORT")
    http.HandleFunc("/", hello)

    log.Printf("\n Application is listening on %v\n", port)

    http.ListenAndServe(port, nil)
}

EN

回答 1

Stack Overflow用户

发布于 2017-04-14 06:19:20

实际上,我不需要在容器中安装Glide!只需将主机中的供应商文件夹反映到docker-compose.yml中的$GOPATH/src即可。然后编译就可以了。

代码语言:javascript
复制
version: '3'
services:
  logen:
    build:
      context: ./Docker
      dockerfile: Dockerfile
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - ./vendor:/go/src
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43384509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档