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

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.kler.cn/a/273492.html

相关文章:

  • 交换机的基本配置
  • 钉钉向广告低头
  • 【数据分享】1901-2023年我国省市县镇四级的逐年最高气温数据(免费获取/Shp/Excel格式)
  • 人工智能技术在网络安全领域被恶意利用
  • HTML 框架
  • clickhouse运维篇(三):生产环境一键生成配置并快速部署ck集群
  • Linux:Gitlab:16.9.2 (rpm包) 部署及基础操作(1)
  • PPT无法插入页码 解决办法
  • 注册个人小程序
  • 阿里云服务器地域机房所在城市对照表,2024年最新节点
  • macOS 通过 MacPorts 正确安装 MySQL 同时解决无法连接问题
  • 深入探索C与C++的混合编程
  • uni.getlocation h5获取定位失败后,阻塞问题
  • 解决访问站外图片403(referrer)问题
  • 【物联网应用】基于云计算的智能化温室种植一体化平台
  • 怎样提升小程序日活?签到抽奖可行吗?
  • 深度学习面经-part3(RNN、LSTM)
  • DOcker搭建Rancher
  • 爬虫加密算法
  • 聚类分析 | Matlab实现基于NNMF+DBO+K-Medoids的数据聚类可视化
  • unity 加载BMP格式图片数据流
  • GPT实战系列-LangChain的Prompt提示模版构建
  • 瓷管电阻的工艺结构原理及选型参数总结
  • web渗透测试漏洞复现:Elasticsearch未授权漏洞复现
  • uniapp运行项目到微信小程序报错——未找到[“sitemapLocation“]
  • Chrome历史版本下载地址:Google Chrome Older Versions Download (Windows, Linux Mac)