一个简单的 dockerfile 示例
# 基于golang最新版本的镜像
FROM golang:latest
# 设置维护者标签
LABEL maintainer="xxx@gmail.com"
# 将当前目录下的所有文件拷贝到容器的/app目录下
COPY ./ /app
# 下载 + 拷贝远程文件到容器的/app目录下
# ADD https://xxx.yyy.zzz/abc.tar.gz /app
# 设置工作目录
WORKDIR /app
# 设置环境变量
# ENV APP_HOME=/usr/src/app
# 创建一个挂载点,用于持久化和共享数据
# VOLUME ["/data"]
# 指定容器运行时的用户,容器默认以 root 用户运行
# USER root
# 定义构建时要使用到的临时参数,构建完成后无效
# ARG VERSION=1.0
# 在工作目录下运行命令
RUN go mod download
RUN go build -o main .
# 将容器内部的8020端口暴露出来,外部可以访问这个端口
EXPOSE 8020
# 定义容器健康检查,允许 Docker 监测容器的健康状况,并根据健康检查的结果决定是否重启容器
# HEALTHCHECK CMD curl --fail http://localhost:8080 || exit 1
# 指定容器启动时默认运行的命令(可以被运行时单独指定的命令或参数覆盖)
# CMD ["go run", "main.go"]
# 也可以使用 ENTRYPOINT 指令来指定容器的入口点(不会被运行时单独指定的命令或参数覆盖)
# ENTRYPOINT ["go run"] # 用于定义执行的命令
# CMD ["main.go"] # 用于定义执行的参数
ENTRYPOINT [ "./main" ]
# 如何使用这个Dockerfile
# docker build -t my-app .
# docker run -d -p 8020:8020 my-app
# 后记:以上方法比较繁琐,下一阶段将使用docker-compose来简化这个过程
一个简单的 dockerfile 示例的更多相关文章
- [MySQL5.6] 一个简单的optimizer_trace示例
[MySQL5.6] 一个简单的optimizer_trace示例 前面已经介绍了如何使用和配置MySQL5.6中optimizer_trace(点击博客),本篇我们以一个相对简单的例子来跟踪op ...
- 一个简单的CSS示例
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 & ...
- IDDD 实现领域驱动设计-一个简单的 CQRS 示例
上一篇:<IDDD 实现领域驱动设计-CQRS(命令查询职责分离)和 EDA(事件驱动架构)> 学习架构知识,需要有一些功底和经验,要不然你会和我一样吃力,CQRS.EDA.ES.Saga ...
- (转)Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- Ajax得知(两)—— 一个简单的Ajax示例
通过部分博客认识Ajax之后,我们通过一个简单的实例来消化消化理论知识,一睹Ajax的庐山真面目. 1.实例功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...
- Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- 一个简单的ServletContextListener示例
ServletContext可以初始化String类型的参数.但是,如果你希望应用初始化参数是一个数据库DataSource呢?上下文参数只能是String.毕竟,你不能把一个Dog对象塞到XML部署 ...
- 从一个简单的 JPA 示例开始
本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例:接着重构该示例,并引入 Sp ...
- 一个简单的MapReduce示例(多个MapReduce任务处理)
一.需求 有一个列表,只有两列:id.pro,记录了id与pro的对应关系,但是在同一个id下,pro有可能是重复的. 现在需要写一个程序,统计一下每个id下有多少个不重复的pro. 为了写一个完整的 ...
- 使用Unicode写文本文件:一个简单类的示例
参考了http://forums.codeguru.com/showthread.php?457106-Unicode-text-file示例. class WOFSTREAM : public st ...
随机推荐
- 遍历列表、元组或字符串的函数enumerate
这两天在处理遇到的问题,循环遍历列表中的字典并输出到excel中 查阅资料发现了一个正和我意的函数 所以周一一上班我就开始试一试 然而发现 enumerate函数只适用于列表.元组或字符串的函数 语法 ...
- jupyterhub nginx proxy pass----ipv6转ipv4实现内网穿透
jupyterhub 很多人应该已经对jupyter和notebook已经有所了解了.如果是多人共享服务器的话,就需要用到jupyter的多用户版本jupyterhub.jupyterhub架构如图所 ...
- cURL 工具库基本使用
cURL(Client URL)是一个功能强大的工具和库,用于与各种网络协议进行交互,cURL常用的一些参数和示例代码: -X, --request :指定HTTP请求方法(GET.POST.PUT等 ...
- 事件监听、焦点--java进阶day03
1.事件 按钮是组件,点击后就会重新游戏 对于这种点击了组件之后,有逻辑触发的操作,就是事件 2.事件中的专有名词 绑定监听也就是绑定监视,是真正组织代码逻辑的地方 要有绑定监听就需要监听器,今天学习 ...
- 【Ubuntu】“Linux版PhotoShop”绘图软件的安装和汉化
[Ubuntu]"Linux版PhotoShop"绘图软件的安装和汉化 零.前言 最近换了Linux系统,但是写教程做PPT的时候还是得用到绘图软件,上网一查,总结对比之后发现Kr ...
- 白话kotlin协程
文章同步发布于公众号:移动开发那些事白话kotlin协程 1 什么是协程 Kotlin协程(Coroutine)是一种轻量级的线程管理框架,允许开发者以更简洁,更高效的方式处理异步操作,避免回调地狱和 ...
- 2021年扩展DevOps的6种方法
2021年扩展DevOps的6种方法 加强devops流程的自动化 为了满足快速.高质量应用程序交付的需求,现代软件团队需要一种超越常规性能测试的方法.在这里,以devops为中心的方法可以提供更快. ...
- 使用open-feign进行远程服务调用
想要远程调用别的服务 1).引入open-feign包 2).编写一个接口,告诉SpringCloud这个接口是调用哪个远程的服务 a.声明接口的每一个方法都是调用哪个远程服务的那个请求 3).开启远 ...
- 如何对 Java 的垃圾回收进行调优?
如何对 Java 的垃圾回收进行调优? Java 垃圾回收的调优涉及多个方面,从选择合适的垃圾回收器到调整堆内存的大小.配置 GC 参数等,下面是一些常见的调优方法: 1. 选择合适的垃圾回收器 不同 ...
- symfony3.4修改安全验证默认表配置
#security.yml security: # ··· providers: our_db_provider: entity: class: AppBundle:Users property: u ...