文档章节

go alpine docker image 搭建

solate
 solate
发布于 05/20 10:05
字数 319
阅读 7
收藏 0

Dockerfile 搭建

目录结构

--Dockerfile
--main.go
  1. 写一个go的helloworld
package main

import (
	"fmt"
	"log"
	"net/http"
)

func main() {

	http.HandleFunc("/", hello)
	err := http.ListenAndServe(":8080", nil) //设置监听的端口
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

func hello(w http.ResponseWriter, r *http.Request) {

	fmt.Println(r.Method) //GET

	w.Write([]byte("hello world"))
}

  1. 写Dockerfile
# 第一行必须指定基于的基础镜像, alpine
FROM golang:alpine


# MAINTAINER docker_user docker_user@email.com


# 镜像的操作指令
RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN go build -o main .


# 容器启动时执行指令
CMD ["./main"]
  1. 在创建的目录内, 运行 docker build -t webtest ..

-t 指定编译镜像名

  1. 运行镜像 docker run -d -p 9090:8080 webtest

  2. 访问 localhost:9090/

编译后再打包成Docker

目录为

--bin
---- main
--cmd
---- build.sh
--config
----config.toml
--Dockerfile
--main.go

在cmd中执行build.sh

#!/bin/bash

echo "begin..."

# 编译程序为二进制文件
GOOS=linux go build -ldflags "-w" -o ../bin/main  ../main.go


# docker 部分
docker build -t dse:0.0.1 ../.

# tar
docker save -o ../bin/dse.tar dse:0.0.1

echo "end"

Dockerfile 文件

FROM golang:alpine

# 创建目录
RUN mkdir -p /app/config
# 创建工作空间
WORKDIR /app
# 复制二进制文件到工作目录
ADD bin/main /app/
# 复制配置文件到工作目录
ADD config/config.toml /app/config/config.toml

# 启动程序
CMD ["/app/main"]

参考

Containerize This! How to build Golang Dockerfiles

© 著作权归作者所有

solate
粉丝 10
博文 126
码字总数 109846
作品 0
成都
程序员
私信 提问
docker入门与实践之【06-其他镜像制作方式】

1.从压缩包导入 格式: 可以使用history命令查询构建记录: 2. 和 使用 docker save 命令可以将镜像保存为归档文件。 比如我们希望保存这个 alpine 镜像。 保存镜像的命令为: 然后我们将 al...

Funcy1122
2018/06/08
0
0
Alpine Docker 安装 bash

Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗。Alpine Linux提供了自己的包管理工具:apk,我们可...

时间之弧
2018/04/12
0
0
【URLOS应用开发基础课】docker官方系统镜像Alpine入门教程

我们在进行URLOS应用开发时,经常会用到一些基础系统镜像,如:ubuntu、CentOS、Debian等,我们可以通过docker pull命令直接拉取官方镜像。 以上是从docker官方拉取的ubuntu18.04镜像,我们可...

低调的维斯
04/26
0
0
Alpine Linux 使用简介

目录: 一、Alpine简要介绍 二、Alpine本地安装 三、Alpine在Docker下运行 四、Alpine的配置和使用 4.1网络相关文件 4.2更新国内源 4.3软件包管理工具apk的基本使用 4.4开启SSH服务 4.5安装n...

bz_z
2018/11/29
0
0
docker swarm auto scale

主旨介绍 使用mac和fusion vm两台主机搭建一个小的docker集群, 采用docker swarm方式搭建. Swarm基本概念: manager:用来管理swarm服务 node: docker enginer节点, 通过manager可以在node上操...

jimmywa
2018/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
6
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部