Dockerfile 踩坑记

Dockerfile 编写踩坑汇总 WORKDIR 指定工作目录(或称当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR 会自行创建。第一层 RUN cd /app 的执行仅仅是当前进程的工作目录变更,一个内存上的变化而已,其结果不会造成任何文件变更。在 Shell 中,连续两行是同一个进程执行环境,因此前一个命令修改的内存状态,会直接影响后一个命令;第二层启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。bash 支持 source。sh 不支持 source。 阅读详情

Dockerfile 看起来很简单嘛,但是自己实际操作的时候,还是有几个地方需要注意的

Dockerfile内容:

#FROM ubuntu:18.04 #测试的乌班图
FROM python:3.6-stretch # 直接使用python3.6
MAINTAINER longruanyun "longruanyun@qq.com"
#RUN apt-get update 
#RUN apt-get install -y  python3-dev python3-pip 
RUN mkdir /demo
WORKDIR /demo
COPY $PWD/ . #拷贝当前目录下的所有文件到镜像的demo目录
RUN python3 1.py #这里是测试python3是否生效
#RUN pip3 install -r requirement.txt #注意使用-i的指令配置pip源
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  -r requirement.txt
#ENTRYPOINT "python3 /demo/manage.py runserver 0.0.0.0:9000" # 这里找不到manage.py,使用shell脚本
ENTRYPOINT ["/bin/bash","./run.sh"]
EXPOSE 9000
CMD "OK SUCCESS GOOD!" #无意义的一句话

1. 镜像的名称不能包含大写字母

invalid argument "myWeb:1.0" for "-t, --tag" flag: invalid reference format: repository name must be lowercase
  1. 生成镜像的时候,注意最后加个 . 注意这个 . (原点)
  2. Dockerfile 中,如果使用pip安装依赖的时候,注意要临时改变一下pip源

看这个错误:
pip
Dockerfile文件内容为:
在这里插入图片描述
执行命令的过程,中间再pip这里反复出错。网上查阅,说是容器内存不够,我也是醉了… 看看官方的demo,豁然开朗:

这么改一下就ok了:

RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  -r requirement.txt

在这里一定要指定一下源的地址,否则Dockerfile中的pip可能会出现如下错误

  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x7f20848eca20>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/django/

  1. 使用容器挂载数据卷的时候,如果容器里对应的文件夹内有文件,会清空所有内容。。。注意:清空容器的对应数据卷内容并替换为主机卷里的内容

  2. ENTERPOINT和CMD关系:
    进行docker run 里执行的为CMD,Dockerfile会被替换。但是ENTERPOINT的命令不会通过docker run 被覆盖。docker run 可以覆盖dockerfile里的cmd

同花顺Supermind量化交易 风险控制建模--海龟交易法则 A.市场与标的海龟交易法则应用于流动性高的市场中,选择交易量较大的标的进行交易。本文以沪深300指数ETF为标的,构建海龟交易法则。B、仓位:仓位是海龟交易系统最核心的部分,通过ATR真实波幅指标来管理仓位。第一步:计算True Range,简称TR。TR = Max ( H−L , H−P , P−L ) ,其中H为当日日内最高价,L为当日日内最低价,P为前一日收盘价。第二步:计算ATRATR = mean ( TR , 20 ) , 即计算过去20天的TR的平均值,ATR是TR的移动平均值。 阅读详情

相关推荐

TEC控制器芯片 ADN8835 中文数据手册

ADN8835是一款高集成度的单芯片TEC控制器。它包括线性电压调节模块脉冲宽度调制(PWM) 电压调节模块和两个零漂移、轨到轨斩波放大器。线性控制器和PWM驱动器用于控制H桥配置中的内部功率MOSFET。通过测量热传感器反馈电压,并使用集成的运算放大器作为比例-积分-微分(PID)补偿器来调理信号,ADN8835通过TEC驱动电流,将连接至TEC模块的激光二极管或无源组件的温度稳定到编程的目标温度。

lu2289504634的博客 9538

docker: invalid reference format.

报docker: invalid reference format.错误 原因无非几种 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/conf.

licux的博客 2万+

微信爬虫服务器,微信文章爬虫使用教程 - 八爪鱼采集器

对于某些用户来说,直接自定义规则可能有难度,所以在这种情况下,我们提供了网页简易模式,网页简易模式下存放了国内一些主流网站爬虫采集规则,在你需要采集相关网站时可以直接调用,节省了制作规则的时间以及精力。微信文章采集下来有很多作用,比如可以将自己行业中最近一个月之内发布的内容采集下来,然后分析文章标题和内容的一个方向与趋势。所以本次介绍八爪鱼简易采集模式下“搜狗公众号”的使用教程以及注意要点。步骤一...

weixin_26712065的博客 3258

【docker】invalid argument "" for "-t, --tag" flag: invalid reference format: repository name must be

错误信息: Work@Shi MINGW64 /f/_Test/Sthxn.MonitorService_v0.11 $ docker build -t Sthxn.MonitorService:v0.11 . invalid argument "Sthxn.MonitorService:v0.11" for "-t, --tag" flag: invalid reference format: ...

博客 7853

2.6 SST的核心性能指标体系

本文构建了固态变压器(SST)的核心性能指标体系,涵盖电气性能、可靠性、经济性和环境适配性四大类指标。电气性能指标包括运行效率(≥97%)、功率密度(≥900kVA/m³)、谐波畸变率(≤3%)等关键参数;可靠性指标设定MTBF≥43800h、年均故障率≤1.2次/年等标准;经济性指标对比分析了初始购置成本(45-55万元)和全生命周期成本(48-55万元);环境适配性指标则明确了温度、海拔等工况要求。该体系采用量化公式和国标限值,为SST的性能测试、选型和优化提供了统一标准。

技术工作者 602

透传产品上报AEP平台数据流程

1. 什么是数据透传 数据透传:指的是在通讯中不管传输的业务内容如何,只负责将传输的内容由源地址传输到目的地址,而不对业务数据内容做任何改变。 这篇文章描述了如何将一台NB设备通过透传方式将数据传输到AEP平台,再通过数据订阅的方式获取到这些数据。 2. 步骤 2.1 设备在AEP平台创建 AEP:https://dm.ctwing.cn/ 新建产品 添加设备 根据模组的15位IMEI添加设备 开启内网穿透 具体可参照我的这篇博客:内网穿透-如何进行本地数据调试 设置数据推送

qq_42265394的博客 2297

docker:invalid reference format 原因及解决办法

docker:invalid reference format 原因及解决办法

宇弟儿的博客 1万+

SystemVue 链路预算、仿真分析步骤

使用SystemVue进行链路预算、频谱分析等,相对ADS更全面。

BeCourageable的博客 3836

docker error: invalid argument ““ for “-t, --tag“ flag: invalid reference format

通过docker创建镜像时,出现了镜像名称的格式错误异常: 镜像名称格式错误一般有以下几种: 有大写字母 语法结尾没有标点 " . " 名称中有其他特殊字符。 仔细检查后发现,镜像名都使用了小写,结尾也加了标点" . "。那么问题出在了哪里? 进入docker官网,查看官方创建容器镜像的语法: 可以看到镜像名与标点" . "之间有一个空格。 将镜像名与标点" . “写在一起,会被认为是一个镜像名字,因此相当于没有写标点” . "。 学习一定要仔细,尽量跟着官方教程来学习。 ...

weixin_44000753的博客 1万+

Sigrity Power Tree如何生成电源树操作指导

Sigrity Power Tree可以方便地生成电源树,仅需要网表文件就能将系统的电源树直观的显示出来,生成的电源树文件可以用Power DC,optimizePI进行直流和交流仿真,下面介绍如何生成电源树。Base on [Device_TYPE and VALUE]就是识别网表中器件的Device_TYPE作为power tree中的模型的名字。Allegro layout netlist file,就是从Allegro layout文件中输出的netlist第三方网表文件。如何生成电源树操作指导。

weixin_54787054的博客 1536

【SWAT】SWAT中预定义河网及流域

平原圩区没有明显的海拔差异。DEM中包含的地形信息无法定义河段的位置和水文连接,SWAT模型Watershed Delineator中提供两种方法,帮助用户输入流域拓扑信息。第一种方法,“Burn-in”和手动绘制河段和子流域边界。首先,使用“Burn-in”功能导入数字河道网络(DCN),并根据DEM和DCN绘制河流和子流域。然后在ArcGIS中编辑“流域”和“河段”层,可以调整位置、范围和水文连接。第二种方法,可以手动绘制或重新编辑河流和子流域,预定义河网及流域。

```On Earth, Be Water, By Coding``` 3273

Dockerfile

文章目录简介Dockerfile FormatDocker制作jdk镜像 简介 构建镜像的方式有两种:一种是基于容器制作,另一种就是通过Dockerfile。Dockerfile其实就是我们用来构建Docker镜像的源码,当然这不是所谓的编程源码,而是一些命令的组合,只要理解它的逻辑和语法格式,就可以编写Dockerfile了。 dockerfile 是一个文本格式的配置文件, 用户可以使用 Do...

大屌的博客 455

Microsemi Libero系列教程(一)——Libero开发环境介绍、下载、安装与注册

前言 相比与Xilinx和Altera在国内的市场,Microsemi的FPGA在国内应用很少很少,网上几乎没有详细的教程,刚开始使用时,遇到了各种问题,自己也走了不少弯路。本系列教程以Libero V11.8.2.4,SmartFusion系列A2F200M3F FPGA芯片为例,将详细介绍Libero SoC软件的基本使用,及使用过程中遇到一些问题的解决方法。 Libero 简介 关于Lib...

whik1194的博客 3万+

Dockerfile 构建 Vue 镜像踩坑记

​目前在公司维护的测试工具平台,有时候前端需要更新。改完前端Vue项目之后,还得在执行npmrun build 打包整个项目,再把打包好的整个项目拷贝过去后端项目中:这一步骤非常繁琐且不符合前后端分离的思想。为此考虑使用 Nginx 部署前端项目,后期可以配合 rancher 进行 CICD。

jiegeniuboyi的博客 1214

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Docker 拉取官方基于Debain的镜像使用dockerfile构建nginx+php+mysql+redis 踩坑记

以后要抛弃手动编译lnmp了,直接用docker 写好Dockerfile 和docker-compose.yml 分分钟部署好环境。 问题背景: 拉取官方php镜像,写好了dockerfile,替换了镜像内的php.ini 以及php-fpm.conf配置文件 问题: 1.php容器启动以后立刻就停止了,状态总是exited(0) 。 检查 php-fpm.conf 将 daemon ...

挂件 1587

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

内网部署MinerU踩坑记:手把手教你用Dockerfile魔改和docker commit解决PaddleOCR模型下载问题

本文详细介绍了在内网环境下部署MinerU的实战经验,重点解决PaddleOCR模型下载问题。通过Dockerfile魔改和docker commit技术,实现模型文件的离线部署,提升内网AI应用部署效率。文章涵盖模型本地化策略、Docker镜像优化及运行时动态修补技巧,为企业级AI部署提供实用解决方案。

weixin_30836759的博客 407

【Dockerfile】Dockerfile打包Tomcat及TongWeb应用镜像(工作实践踩坑教学)

踩坑案例:通过上述前置启动,即可在部署完容器后直接docker logs xxx实时查看启动日志,如果你的程序中有有特殊读取文件的需求例如读取当前tomcat/bin/xxx文件,打包到镜像中发现路径错误,可以修改对应的启动脚本cd到你的镜像中的地址,如图

A的博客 1625

dockerfile踩坑记录

需求:利用dockerfile的ENTRYPOINT在容器启动时自动执行脚本 一、编写测试dockerfile # version: 0.0.1 FROM dialogserver MAINTAINER bob "bob@163.com" ENV MYPATH /root/dialog_core WORKDIR $MYPATH EXPOSE 80 ENTRYPOINT ["./startup.sh...

Bobdragery的博客 7978

Docker Dockerfile使用详记-小白笔记

1 什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 2 使用 Dockerfile 定制镜像 这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,构建的流程如下: 2.1 添加Dockerfile文件 下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件) 在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加

码灵的博客 4211

手把手教你玩转Dockerfile(实战避坑指南)

(别问我怎么知道的)最近团队新人小王的Dockerfile看得我血压飙升!这兄弟居然在基础镜像里安装了完整的GNU Core Utilities,结果镜像体积直奔1GB而去(瑟瑟发抖)…曾经有个项目因为分开了5个RUN指令,导致镜像多了200MB的冗余数据(都是泪)…原理是利用Docker的缓存机制,只有当package.json变化时才重新安装依赖(亲测有效)。上个月还能跑的镜像突然构建失败,八成是基础镜像更新惹的祸。按照这个模板操作,保证你的Dockerfile水平超过80%的开发者!

swiftcoder1的博客 574

一文读懂 Dockerfile:从基础语法到常见踩坑总结

Docker 镜像采用 UnionFS 分层存储机制。简单理解:镜像层就是每一条构建指令生成的只读快照。基础镜像本身自带很多层,我们自己写的 Dockerfile 每执行一次操作,就会叠加一层新镜像。层数越多,镜像体积越大、构建越慢。所以写 Dockerfile 要尽量合并指令、减少层数。EXPOSE 只是声明端口,不会自动开放端口,端口映射需要 -p。RUN 在镜像构建阶段执行;CMD / ENTRYPOINT 在容器启动阶段执行,不要混淆执行时机。

shiufa的博客 178

Dockerfile的入坑路

0x00 前言 在经历了无数次的手动搭建环境之后,尝试过无尽的绝望(稍微有些夸张了),最后决定把Dockerfile学起来,要弄的镜像实在太多了,创建好基础镜像之后使用Dockerfile可以减轻很多工作,所以特地整理了这份Dockerfile相关命令。 0x01 docker build docker build . 使用当前目录下的Dockerfile文件创立新的镜像,但是RE...

Peithon的博客 1万+
上一篇: Hadoop Demo
下一篇: docker mysql 并远程
猫影
博客等级 码龄10年 31粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值