分享
  1. 首页
  2. 文章

golang应用打包成docker镜像

fanyang1 · · 3554 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang编译的应用是不需要依赖其他运行环境的,那么为什么还需要打包成docker镜像呢?当需要附带配置和日志等文件时可以更方便的移植和运行,下面介绍从dockerfile编译成镜像。

在项目根目录新建dockerfile,内容如下:

FROM alpine:latest         #基于的镜像不是golang(733M),而是alpine(4.14M)
MAINTAINER fanyang "luckyfanyang@gmail.com"
WORKDIR $GOPATH/src/login
ADD config    $GOPATH/src/config   #此目录存放的是所有项目的数据库配置
ADD login/conf   $GOPATH/src/login/conf  #此目录存放的是beego项目的配置
ADD login/login $GOPATH/src/login/login #编译后的可执行文件 RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 EXPOSE 8080 ENTRYPOINT ["./login"]

ubuntu下打开终端定位到src目录(因为需要上传config目录,不能直接定位到login目录)执行命令:

docker build -t login -f ./login/dockerfile . 

打包成镜像以后运行命令:

docker run -d -p 8080:8080 login

有时候想共享数据目录使用下列命令:

docker run -itd --name voltest -v /opt/mytest alpine
docker run -it --name helloworld --volumes-from=voltest alpine

这样在voltest下mytest目录里新建的文件会出现在helloworld下的mytest目录,进入目录查询文件使用:

docker exec -it voltest sh

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:fanyang1

查看原文:golang应用打包成docker镜像

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
3554 次点击
1 回复 | 直到 2020年09月30日 10:58:01
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏