当前位置: 首页 > news >正文

DockerFile遇到的坑

CMD 命令的坑

dockerfile 中的 CMD 命令在docker run -it 不会执行 CMD 命令。

FROM golang
WORKDIR /
COPY . ./All-in-one
CMD ["/bin/sh","-c","touch /kkk.txt && ls -la"]
RUN echo 'alias ll="ls -la"' > ~/.bashrc
  • (不会执行CMD)docker run -it 不会生成kkk.txt文件
  • (会执行CMD)执行docker run -d imageName,会直接结束,通过docker ps -a 查看CMD是已经执行了。
  • (会执行CMD)执行docker run imageName,再启动新终端执行docker exec -it查看CMD命令执行结构

使用 docker run -it 命令启动容器时,默认情况下会覆盖 Dockerfile 中定义的 CMD 指令。
当您在运行 docker run 命令时提供了额外的命令,Docker 不会执行 Dockerfile 中的 CMD 指令,而是执行您提供的命令

docker run,golang程序在宿主机上可以运行,在容器中不可以运行

在尝试用docker的alpine镜像运行从golang镜像中编译出来的可执行文件时出现如下的错误

... "no such file or directory"

在 Go 1.5 版本之后,Go 默认开启了 CGo。CGo 是 Go 语言的一个特性,它允许你在 Go 代码中调用 C 语言的函数。CGo 允许 Go 代码与 C 语言代码直接交互,这为使用 C 语言编写的库提供了良好的兼容性。

禁用CGO_ENABLED=0,重新编译即可

export CGO_ENABLED=0

原理参考:https://blog.csdn.net/tianyi520jx/article/details/127164636

http://www.lryc.cn/news/322881.html

相关文章:

  • 并网型风光储微电网日前优化调度(MATLAB实现)
  • MATLAB环境下基于振动信号的轴承状态监测和故障诊断
  • 流畅的 Python 第二版(GPT 重译)(十二)
  • 【Python 48小时速成 2】关键字
  • 小程序socket 全局代码
  • 数据挖掘|数据集成|基于Python的数据集成关键问题处理
  • Linux-网络层IP协议、链路层以太网协议解析
  • 后端开发辅助
  • 插件电阻的工艺结构原理及选型参数总结
  • 视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。
  • mac os 配置两个github账号
  • 【SpringBoot】登录校验之会话技术、统一拦截技术
  • Cohere发布大模型Command-R:35B参数,128K上下文,高性能 RAG 功能,支持中文
  • vue+element 前端实现增删查改+分页,不调用后端
  • 浅谈如何自我实现一个消息队列服务器(2)——实现 broker server 服务器
  • html5cssjs代码 039 元素尺寸
  • Lucene的lukeall工具的下载和使用图解
  • 【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷
  • OpenRewrite框架原理解析
  • LeetCode_Java_递归系列(题目+思路+代码)
  • c++ 编译为WebAssembly时,怎么判断是release/debug环境?
  • 信号处理--基于正则化聚合的共空间模态(CSP)脑电信号分类
  • 【2024年5月备考新增】《软考真题分章练习(含答案解析) - 11 项目风险管理(高项)》
  • 【3GPP】【核心网】【4G】4G手机接入过程,手机附着过程(超详细)
  • 【LeetCode-46.全排列】
  • 【Web】浅聊Jackson序列化getter的利用——POJONode
  • osgEarth学习笔记2-第一个Osg QT程序
  • 2024年发布jar到国外maven中央仓库最新教程
  • 在ubuntu22.04.4安装freeswitch1.10.10
  • qt 置顶窗口崩溃无法退出解决,停止运行快捷键设置