首页 > 其他分享 >记一次dockerfile无法构建问题追溯

记一次dockerfile无法构建问题追溯

时间:2024-03-01 14:24:08浏览次数:13  
标签:start scrapy sh 构建 ENTRYPOINT home 追溯 dockerfile tini

我有一个dockerfile如下:

 

ENTRYPOINT ["/sbin/tini","-g", "--"]

CMD /home/scrapy/start.sh

我原本的用意是先启动tini,再执行下面的cmd命令启动start.sh。

为啥要用tini?

因为我的这个docker容器运行了Selenium,以前没用tini的时候Selenium运行结束后会有很多僵尸进程没有退出,遂网上找资料说得用tini。

下面是关于tini的介绍:

原文:
https://cloud-atlas.readthedocs.io/zh-cn/latest/docker/init/docker_tini.html

 

tini可以等待进程退出时清理僵尸进程和信号转发。

我使用的基础镜像是:apline。

需要手动安装一下tini:

apk add tini

使用了tini后,Selenium跑完再查看进程果然没有僵尸进程了,所以就将tini一直保留到现在。

但是我这里是ENTRYPOINT和CMD一起用的,CMD的本意是给ENTRYPOINT提供默认参数的,但是我这里给用成了启动命令。

所以把它改成:

ENTRYPOINT ["/home/scrapy/start.sh"]

在start.sh里启动tini好了,但是如果直接这样写会报错:

/bin/sh: /home/scrapy/start.sh: Permission denied

没有执行权限,给下权限:
RUN chmod +x /home/scrapy/start.sh

完整代码:
RUN chmod +x /home/scrapy/start.sh

ENTRYPOINT ["/home/scrapy/start.sh"]

然后再在start.sh里启动tini和其他操作:

#!/bin/sh

/sbin/tini -sg --

flask run --host 0.0.0.0

这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

标签:start,scrapy,sh,构建,ENTRYPOINT,home,追溯,dockerfile,tini
From: https://www.cnblogs.com/shuinanxun/p/18046961

相关文章

  • 《构建之法》3
    1.1节通过三个简短的对话,启发我对什么是程序,什么是软件,什么是软件工程,也了解到了一个软件不是简简单单就能说写就写的,还需要考虑各种因素,如人们的需求,功能的可行性。1.2节详细的给软件工程下定义,介绍软件工程的特殊性,介绍软件工程中的“工程”的由来,讲述了软件工程与计算机科学的......
  • 《构建之法》
    在信息技术日新月异的今天,软件工程领域的知识和技能成为了每一个开发者不可或缺的基石。《构建之法》这本书,以其深入浅出的方式,让我对软件工程的实践方法和思维有了更加系统的认识。书中,作者不仅详细阐述了软件开发的各个环节,还通过丰富的案例,让我体会到了软件开发中团队协作、需......
  • 《构建之法》读后感
    构建之法读书心得体会读完《构建之法》第一章后,我对软件开发中的各种问题和挑战有了更深入的理解。这本书以其独特的视角,清晰的分析和实用的建议,使我重新审视了软件开发的过程和方法。以下是我的主要心得体会:1.**理解复杂性**:书中强调了理解复杂性在软件开发中的重要性。我们不......
  • 智慧城市:科技与生活的完美融合,构建未来城市新蓝图
    随着科技的不断进步与创新,我们的城市正步入一个崭新的时代——智慧城市。智慧城市是指运用信息技术和大数据等现代科技手段,对城市基础设施、公共服务和社会管理进行智能化改造,实现城市各领域的智能化、信息化和高效化。今天,就让我们一起探索智慧城市的魅力,感受未来城市的无缝融合......
  • 架构设计中的概念明确性与统一性:构建稳健系统的双重保障
    架构设计中的概念明确性与统一性:构建稳健系统的双重保障在软件架构的设计过程中,明确的概念定义和统一的概念理解是确保系统质量和团队协作的关键。它们共同构成了构建稳健系统的双重保障,对于项目的成功至关重要。一、明确概念:架构设计的基石明确的概念定义是软件架构设计的基础......
  • 构建之法阅读笔记
    《构建之法》阅读笔记《构建之法》是一本关于软件构建流程和工程化的书籍,作者是Robert  C.Martin。本书主要介绍了如何规范化地进行软件开发,以实现高效、高质量的软件构建过程。以下是我在阅读过程中的笔记和心得体会。一、本书的核心概念1.整洁代码:作者强调写出整洁、可维护的......
  • ASP.NET Core MVC应用模型的构建[4]: Action的选择
    ControllerModel类型的Actions属性包含一组描述有效Action方法的ActionModel对象。对于定义在Controller类型中的所有方法,究竟哪些方法才能成为有效的Action方法呢?所以在正式介绍ActionModel类型之前,我们先来聊聊Action方法的选择规则。一、Action方法的选择二、ActionModel三、......
  • 1.23构建之法阅读笔记一
    《构建之法》是一本深刻探讨软件开发方法和流程的书籍,它不仅涵盖了软件开发的全过程,还深入探讨了如何通过各种方法提高软件的质量和可靠性。作者通过丰富的案例和生动的语言,阐述了软件开发中的各种问题和挑战,启发读者对未来的思考。书中的主题包括软件开发的方法和流程,以及如何......
  • 构建之法阅读笔记二
    《构建之法》是一本深刻探讨软件开发方法和流程的书籍,它不仅涵盖了软件开发的全过程,还深入探讨了如何通过各种方法提高软件的质量和可靠性。作者通过丰富的案例和生动的语言,阐述了软件开发中的各种问题和挑战,启发读者对未来的思考。书中的主题包括软件开发的方法和流程,以及如何......
  • 构建之法阅读笔记三
    《构建之法》是一本由谢尔盖·鲁贝谢夫所著的技术书籍。这本书主要介绍了软件系统架构的原则与方法,以及如何构建高效、可靠的软件系统。读完这本书,我对软件系统架构有了更深入的理解,也对构建软件系统的方法有了全新的思考。首先,《构建之法》强调了软件系统架构的重要性。作者指出,......