golang应用打包成docker镜像

fanyang1 2018-07-27 原文

golang应用打包成docker镜像

  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

 

发表于 2018-07-27 09:46 喜欢的味 阅读() 评论() 编辑 收藏

 

版权声明:本文为fanyang1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fanyang1/p/9375788.html

golang应用打包成docker镜像的更多相关文章

  1. centos7安装docker并设置开机自启以及常用命令

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任 […]...

  2. kubectl技巧之通过go-template截取属性

    系列目录 在使用kubectl get获取资源信息的时候,可以通过-o(–output简写形式)指 […]...

  3. 001.Docker简介概述

    一 简介 Docker最初是dotCloud公司的一个内部项目,诞生于 2013 年初,由google公司开源 […]...

  4. ASP.NET Core on K8S学习初探(3)部署API到K8S

    在上一篇《基本概念快速一览》中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.N […]...

  5. k8s + docker + Jenkins使用Pipeline部署SpringBoot项目时Jenkins错误集锦

    背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven- […]...

  6. Docker 安装mysql容器数据卷挂载到宿主机

    Docker 安装mysql容器数据卷挂载到宿主机 环境 Centos:7 Docker: 17.05-ce […]...

  7. docker harbor搭建笔记

    介绍 Harbor是VMware公司开源的一个用于存储和分发Docker镜像的企业级Registry服务器,以 […]...

  8. [Docker网络]模拟一台交换机的拓扑

    [Docker网络]模拟一台交换机的拓扑 本例主要对Docker网络进行实际运用。 背景介绍 一台虚拟机如何模 […]...

随机推荐

  1. 一次线上tomcat应用请求阻塞的排查经过

    今天早上,收到一个报警,有个服务器的http往返时延飙升,同时曝出大量404,很是折腾了一番,特记录下思考和排 […]...

  2. 家庭组网启用 NAS

    前言 我曾写过关于 OMV NAS 的两个系列的文章,只不过当时是实验性质的东西,并没有打算启用。 最近家里人 […]...

  3. Graphite简要教程

    转载自DevOps实战:Graphite监控上手指南 英文原文Getting Started with Mon […]...

  4. IDEWorkspaceChecks.plist文件是干什么用的?

    在提交PR的时候,无意间发现了在xcworkspace/xcshareddata中多了一个名为IDEWorks […]...

  5. React 组件模式

    简评:组件(component)是 React 的核心,了解它们有助于构建好的设计结构。 什么是组件(comp […]...

  6. 论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

    NDSS https://arxiv.org/abs/1812.05271 摘要中的创新点确实是对抗攻击中值得 […]...

  7. .h文件和.cpp文件说明

    .h文件和.cpp文件说明 头文件(.h):     写类的声明(包括类里面的成员和方法的声明)、函数原型、# […]...

  8. 目前流行前端几大UI框架排行榜

    在前端项目开发过程中,总是会引入一些UI框架,已为方便自己的使用,很多大公司都有自己的一套UI框架,下面就是最 […]...

展开目录

目录导航