# 基于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 示例的更多相关文章

  1. [MySQL5.6] 一个简单的optimizer_trace示例

    [MySQL5.6] 一个简单的optimizer_trace示例   前面已经介绍了如何使用和配置MySQL5.6中optimizer_trace(点击博客),本篇我们以一个相对简单的例子来跟踪op ...

  2. 一个简单的CSS示例

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 & ...

  3. IDDD 实现领域驱动设计-一个简单的 CQRS 示例

    上一篇:<IDDD 实现领域驱动设计-CQRS(命令查询职责分离)和 EDA(事件驱动架构)> 学习架构知识,需要有一些功底和经验,要不然你会和我一样吃力,CQRS.EDA.ES.Saga ...

  4. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  5. Ajax得知(两)—— 一个简单的Ajax示例

    通过部分博客认识Ajax之后,我们通过一个简单的实例来消化消化理论知识,一睹Ajax的庐山真面目. 1.实例功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  6. Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  7. 一个简单的ServletContextListener示例

    ServletContext可以初始化String类型的参数.但是,如果你希望应用初始化参数是一个数据库DataSource呢?上下文参数只能是String.毕竟,你不能把一个Dog对象塞到XML部署 ...

  8. 从一个简单的 JPA 示例开始

    本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例:接着重构该示例,并引入 Sp ...

  9. 一个简单的MapReduce示例(多个MapReduce任务处理)

    一.需求 有一个列表,只有两列:id.pro,记录了id与pro的对应关系,但是在同一个id下,pro有可能是重复的. 现在需要写一个程序,统计一下每个id下有多少个不重复的pro. 为了写一个完整的 ...

  10. 使用Unicode写文本文件:一个简单类的示例

    参考了http://forums.codeguru.com/showthread.php?457106-Unicode-text-file示例. class WOFSTREAM : public st ...

随机推荐

  1. 分布式锁—3.Redisson的公平锁

    大纲 1.Redisson公平锁RedissonFairLock概述 2.公平锁源码之加锁和排队 3.公平锁源码之可重入加锁 4.公平锁源码之新旧版本对比 5.公平锁源码之队列重排 6.公平锁源码之释 ...

  2. Vulnhub-venom

    对于该靶机,注意利用了信息收集来的21端口和80端口,网站源码发现账户,ftp匿名登录密码猜测,维吉尼亚解密,后台管理员登录,CVE文件上传RCE漏洞利用反弹shell,提权有两中,利用版本内核提权和 ...

  3. 华为平板+Zotero+Xodo+坚果云+Zotfile+Zotero OCR,实现论文笔记平板手写+Win自动生成,补充官方教程

    需要的硬件,软件,插件和实现的最终效果,rt. 1. Win,下载Zotero,坚果云 下载网址:https://www.zotero.org/download/ 版本:Zotero 6.如果是其他版 ...

  4. 服务器Go程序意外停止自动重启

    判断进程是否挂掉 ps -ef | grep ./blog |wc -l 如果输出为1,说明进程挂掉了 如果输出为2,说明进程正常运行 编辑脚本来检测和完成重启 vim restart.sh 逻辑代码 ...

  5. Chrome设置header请求响应头 Chrome ModHeader插件,添加/修改/删除HTTP请求标头和响应标头

    ModHeader,是一款可以添加/修改/删除请求标头和响应标头的浏览器插件. ModHeader插件功能 首先,ModHeader插件支持添加/修改/删除请求标头和响应标头,并可以启用基于URL / ...

  6. 从零创建npm依赖,只需执行一条命令

    由来 最近在弄新的npm依赖,但是发现没有都从头创建项目实属有点儿麻烦,然后我找了之前开发的依赖,将多余代码删除了作为初始化的项目.于是~为什么不弄个模版,每次只需要初始化模版即可,所以就有了这个模版 ...

  7. CSP - J理论(2)

    CSP - J理论(2) CSP-J理论合集跳转 目录 本目录中所有标题单击均可以快速跳转哦

  8. DeepSeekV3:写代码很强了

    以前,我是不信AI能最先替代程序员的. DeepSeek的热度虽然在降,但是能力在悄摸的迭代. 在今年2月中旬测试DeepSeekR1的时候,虽然被它的文本处理能力惊艳到,但是当时吐槽过几句它的编程水 ...

  9. SpringBoot接口 - 统一异常处理

    为什么要统一异常处理 如果不统一处理异常,程序开发时就需要在controller层写大量重复的Valid代码, 比如下面这个样子: @Slf4j @RestController public clas ...

  10. 在我用了几个月VSCode的C++及其衍生功能后的感受

    VSCode优点槽点大盘点 优点 衍生功能是真的多,几乎所有功能在扩展市场里面都能得到.而且无需配置环境啊 自定义功能是真的方便,可以自定义.exe存放位置或者名称,打下;键就能够一键美化代码等等 美 ...