首页 > 其他分享 >手把手教你写Dockerfile以及测试

手把手教你写Dockerfile以及测试

时间:2023-01-17 00:22:23浏览次数:60  
标签:容器 手把手 CMD 指定 构建 测试 镜像 Dockerfile

Dockerfile是什么?

dockerfile就是用来构建docker镜像的构建文件,命令参数脚本。

如何使用Dockerfile?

  • 1、编写一个Dockerfile文件
  • 2、docker build构建成

基础使用(此处罗列一些我们经常用到的)

# 指定依赖镜像版本,基于什么镜像,构建镜像,复制了这个镜像
FROM node:16-alpine 
# 指定doker的环境变量,运行时一直生效,请注意,运行时
ENV NODE_ENV=${NODE_ENV}
# 构建参数,运行时无效,可以构建时候临时修改变量,请注意,构建时
ARG NODE_ENV=production
# 指定你的命令shell语句运行的目录,假如目前没有这个目录,它就会自动创建这个目录
WORKDIR /app
# 复制源文档到工作目录,将宿主机的文件拷贝到某路径下
COPY ./ /app  # 也可以使用 ADD,但是COPY更好用,支持url 
# 运行shell命令语句,构建时候执行
RUN yarn install
# 暴露镜像的指定端口,替换成应用实际的端口号
EXPOSE 8090
# 指定镜像启动运行的脚本,只有容器真正运行的时候才会运行的脚本,执行后容器的生命周期即结束,且一般为阻塞式语句,如tail语句
# tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止,会输出文件,追踪文件更新
# ENTRYPOINT如果不是json就会以ENTRYPOT为准,
# 如果ENTRYPOINT和CMD都是JSON,就用ENTRYPOINT+CMD拼接
CMD tail -f xxx.txt # 也可以使用ENTRYPOINT
CMD [ "node", "server.js" ] # 用法举例

附图ENTRYPOINT和CMD

下面介绍几个我没有怎么用过的

# VOLUME
# 指定映射文件,可实现挂载功能,可以将宿主机目录挂载到容器中,可用专用的文件存储当作Docker容器的数据存储部分
VOLUME ["/data"]
# LABEL
# 指定元数据,便于找到docker,一个Dockerfile种可以有多个LABEL
LABEL com.xiaojin.blog="xiaojin"
LABEL version="1.0"
LABEL description="I see myself as a boy playing on the \
seashore, find a smooth stone, I feel happy. "

# USER
# 设置启动容器的用户,可以使用用户名或UID
USER daemo
USER UID

# ONBUILD [INSTRUCTION]
# 这个命令只对当前镜像的子镜像生效。当前镜像构建的时候不会执行,基于当前镜像的镜像去构建的时候才会执行
# 比如当前镜像为A, ls -al 命令不会在A镜像构建或启动的时候执行,它会在子镜像构建的时候被执行
ONBUILD RUN ls -al

# STOPSIGNAL
# 当容器停止时给系统发送什么样的指令,指定容器使用什么信号,一般指定信号名,
STOPSIGNAL signal

# HEALTHCHECK
# 容器健康状况检查命令,有下面两种语法
HEALTHCHECK [OPTIONS] CMD command
HEALTHCHECK NONE

docker部署nodejs与测试

超简单图文并茂基于Linux使用Docker部署Node.js项目

大功告成~~

  • 今天就写到这里啦~小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

标签:容器,手把手,CMD,指定,构建,测试,镜像,Dockerfile
From: https://www.cnblogs.com/sugartang/p/17048398.html

相关文章

  • 怎么梳理测试场景?
    大家好啊,我是大田。针对「测试场景」,一个原则:大田认为应当站在用户的角度,去模拟被测系统的真实使用场景,针对用户的一系列动作去设计测试点。工作中我们如何梳理测试场景呢......
  • 测试翻页时,发现空白页处理思路
    大家好啊,我是大田。今天给大家分享一个我在工作中出现的问题,测试翻页功能时,发现某一页面空白了。有哪些处理思路:1、检查连网情况;2、随时打开F12观察请求、响应信息。......
  • Vulnhub之Deathnote 靶机详细测试过程
    Deathnotes作者:jason_huawen靶机基本信息名称:Deathnote:1地址:https://www.vulnhub.com/entry/deathnote-1,739/识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/Dea......
  • 【BERT-多标签文本分类实战】之七——训练-评估-测试与运行主程序
    [1]损失函数与评价指标  多标签文本分类任务,用的损失函数是​​BCEWithLogitsLoss​​​,不是交叉熵损失函数​​cross_entropy​​!!​​BCEWithLogitsLoss​​与​​cros......
  • 这是一个测试文章
    spring框架学习(基于官方文档学习)springFramework1、了解springtip:从SpringFramework6.0开始,Spring需要Java17+1.1、概述Spring使创建Java企业应用程序变......
  • 分区表新增分区测试
    1.无MAX分区且非自动分区且全部分区索引1.1.环境准备--建表CREATETABLEMONKEY.TEST_PART_NULL_NORMAL(IDNUMBER,STU_NAMEVARCHAR2(100),STU_A......
  • python—测试工具UI实践(1)—需求分析及环境部署
    环境部署:安装python安装pycharm工作任务:需求:研发一个测试工具,构造随机测试数据技术要求:基于python语言开发成果物:正常使用分享交流:分享开发过程中的收获 ......
  • 思科模拟器:简易校园网组网方案设计、实现、测试及抓包分析
    目录1.题目:校园组网方案设计...32.需求分析...33.理论介绍...44.详细设计...54.1设备的选择与配置...54.1.1交换机与路由器的选择...54.1.2出口路由器添加串......
  • MeterSphere UI 测试脚本的使用
    目前MeterSphereUI测试仅支持js脚本,设置的脚本将在浏览器中执行。以脚本有返回值和无返回值两种情况为例。1js脚本有返回值情况1.1脚本类型:同步,设置变量:有返回值(以下脚......
  • 自动化测试验证码问题
    1.验证码作用不少网站在用户登录、用户提交信息等登录和输入的页面上使用了验证码技术。验证码技术可以有效防止恶意用户对网站的滥用,使得网站可以有效避免用户信息失窃......