statik golang 静态资源嵌入二进制文件工具使用(docker 构建)
将静态资源打包进二进制文件有好多方便的地方
- 方便客户演示
- 代码简单加密
- 运行方便
statik 就是一款在golang 中用的比较多,nodejs 有一款pkg (oclif 就推荐使用此工具)
statik 安装
go get github.com/rakyll/statik
使用
statik -src= resourceurl
项目使用
使用dep 进行包管理
- 简单项目
cd $GOPATH/src/github.com/rongfengliang/webui
dep init
- 项目目录

- 配置
使用go generate
//go:generate statik -src=./ui
package main
import (
"log"
"net/http"
"github.com/rakyll/statik/fs"
_ "github.com/rongfengliang/webui/statik"
)
func main() {
statikFS, err := fs.New()
if err != nil {
log.Fatal(err)
}
http.Handle("/", http.StripPrefix("/ui", http.FileServer(statikFS)))
http.ListenAndServe(":10080", nil)
}
静态资源目录结构

docker 集成
Dockerfile :
# build stage
FROM golang:1.10-alpine AS build-env
RUN apk --no-cache add build-base git bzr mercurial gcc && \
go get github.com/rakyll/statik
ENV D=/go/src/github.com/rongfengliang/webui
ADD . $D
RUN cd $D && go generate && go build -o webui . && cp webui /tmp/
FROM alpine:latest
WORKDIR /app
COPY --from=build-env /tmp/webui /app/webui
CMD ["./webui"]
docker-compose.yaml:
version: "3"
services:
ui:
image: dalongrong/webui
build: ./
ports:
- "8080:10080"
参考资料
https://github.com/rongfengliang/statik-web-demo
https://github.com/rakyll/statik
statik golang 静态资源嵌入二进制文件工具使用(docker 构建)的更多相关文章
- 几个golang 静态资源嵌入包
静态资源嵌入二进制文件中,可以方便我们的软件分发(只需要简单的二进制文件就可以了),目前大部分golang 的 web 应用都是使用类似的方法. 以下是收集到的一些常见方案 github.com/go ...
- go.rice 强大灵活的golang 静态资源嵌入包
以前简单介绍过packr ,statik 等静态资源嵌入工具包的使用,go.rich 是一个与packr 类似的静态资源嵌入包,使用简单 功能强大 项目结构 golang mod go mod i ...
- golang1.16内嵌静态资源指南
今天是万圣节,也是golang1.16新特性冻结的日子.不得不说自从go2路线发布之后golang新特性的迭代速度也飞速提升,1.16中有相当多的重要更新,包括io标准库的重构,语言内置的静态资源嵌入 ...
- [golang]Go内嵌静态资源go-bindata的安装及使用
使用 Go 开发应用的时候,有时会遇到需要读取静态资源的情况.比如开发 Web 应用,程序需要加载模板文件生成输出的 HTML.在程序部署的时候,除了发布应用可执行文件外,还需要发布依赖的静态资源文件 ...
- 前端工程精粹(一):静态资源版本更新与缓存(附精简js的工具)
转自:http://www.infoq.com/cn/articles/front-end-engineering-and-performance-optimization-part1/ 每个参与过开 ...
- NodeJS4-8静态资源服务器实战_构建cli工具
Cli(command-line interface),中文是 命令行界面,简单来说就是可以通过命令行快速生成自己的项目模板等功能(比较熟悉的是vue-cli脚手架这些),把上述写的包做成Cli工具. ...
- 静态资源上传至远程ftp服务器,ftp工具类封装
工具类,是一个单独的工程项目 提取必要信息至ftp.properties配置文件中 ftp_host=192.168.110.128 ftp_port=21 ftp_username=ftpuser ...
- Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎
前言 Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器.且开发十分简单,只需要引入 web 开发所需的 ...
- PHP资源,库,工具大全
内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等. 大家可以搜索其它语言,如awesome-java的https://github.com/ ...
随机推荐
- XSD与C#Code以及XML之间的相互关心
------------------------------网上参考资料 C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件:http://blog.sina.com.cn/s/b ...
- sgu 126 Boxes
题意:较大的容量减较小的容量,较小的容量翻倍.问操作几回其中一个空. 开始用set判重,重复就不可行.不过状态最多有2e18种.不仅爆内存,还超时.然后找规律.发现只有比例为1:1,1:3,1:7,3 ...
- 『Nltk』常用方法
引言 在nltk的介绍文章中,前面几篇主要介绍了nltk自带的数据(书籍和语料),感觉系统学习意义不大,用到哪里看到那里就行(笑),所以这里会从一些常用功能开始,适当略过对于数据本体的介绍. 文本处理 ...
- Hibernate中的HQL的基本常用小例子,单表查询与多表查询
<span style="font-size:24px;color:#3366ff;">本文章实现HQL的以下功能:</span> /** * hql语法: ...
- python-day68--模型层基础(model)
一.ORM : object relationship mapping 对象映射关系 映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 & ...
- python中异常处理--raise的使用
https://www.cnblogs.com/zhangyin6985/p/7229553.html 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了rai ...
- forget word out2
1★ dictionary / dik ʃ ən əri dict 2★ fy => faction f æk ʃ ən 派别
- Chrome nacl开启
Chrome nacl开启
- MySQL 5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数
新参数说明和设置,这里说下5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数. MySQL Server参数: 1,optimizer_switch:优化器选项. Variable_name ...
- ipython与sublime调用其shell出现的问题
本机电脑 win10 已安装python3.5 1. 直接在命令行运行 pip install ipython[all] 安装 ipython 安装完成后 在命令行输入 jupyter note ...