首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我运行phpunit测试时,Docker似乎使用了缓存

当你运行phpunit测试时,Docker似乎使用了缓存。这可能是因为Docker在构建镜像时会使用缓存来提高构建速度和效率。当你运行phpunit测试时,Docker会检查Dockerfile中的指令是否发生了变化,如果没有变化,它会使用之前构建的镜像的缓存。

这种缓存机制可以节省时间和资源,但有时也会导致问题。如果你在Dockerfile中的指令之后修改了代码,但Docker仍然使用了之前的缓存镜像,那么你可能无法看到最新的代码更改反映在测试中。

为了解决这个问题,你可以使用Docker的--no-cache选项来禁用缓存,强制Docker重新构建镜像。你可以在运行docker build命令时添加--no-cache选项,例如:

代码语言:txt
复制
docker build --no-cache -t my-phpunit-image .

这将确保Docker在构建镜像时不使用缓存。

另外,你还可以在Dockerfile中使用一些技巧来优化缓存机制。例如,将经常变化的代码部分放在Dockerfile的末尾,这样可以最大程度地利用缓存。你还可以使用多个Dockerfile来分离不同的代码部分,以便更灵活地控制缓存。

总结起来,Docker在构建镜像时使用缓存来提高效率,但有时会导致代码更新不及时的问题。你可以使用--no-cache选项禁用缓存,或者在Dockerfile中使用一些技巧来优化缓存机制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于 Drone + Gogs 构建私有 CICD 平台 | Kubernetes 篇

前言 很久之前、部署方案选择了基于 Docker 的容器化落地方案,极简描述与总结于 gogs_drone_docker。...但是随着微服务抽象定义的服务越来越多、团队规模越来越壮大,单机部署的自动化持续部署平台在并行处理任务可能会出现大量排队、扩容机制不灵活,同时为了统一、对齐部署姿势,因此将 Docker 转 Kubernetes...kubectl apply -f drone/server kubectl apply -f drone/runner # 部署代码质量检测工具 kubectl apply -f sonarqube 运行.../local/bin/composer install --optimize-autoloader -vvv when: branch: - develop - name: 单元测试.../vendor/phpunit/phpunit/phpunit - name: 构建镜像 image: plugins/docker settings: username:

1.1K00

基于 Drone + Gogs 构建私有 CICD 平台 | Kubernetes 篇基于 Drone + Gogs 构建私有 CICD 平台 | Kubernetes 篇

前言 很久之前、部署方案选择了基于 Docker 的容器化落地方案,极简描述与总结于 gogs_drone_docker。...但是随着微服务抽象定义的服务越来越多、团队规模越来越壮大,单机部署的自动化持续部署平台在并行处理任务可能会出现大量排队、扩容机制不灵活,同时为了统一、对齐部署姿势,因此将 Docker 转 Kubernetes...kubectl apply -f drone/server kubectl apply -f drone/runner # 部署代码质量检测工具 kubectl apply -f sonarqube 运行.../local/bin/composer install --optimize-autoloader -vvv when: branch: - develop - name: 单元测试.../vendor/phpunit/phpunit/phpunit - name: 构建镜像 image: plugins/docker settings: username:

1.1K10
  • Docker-如何清理磁盘占用

    最近开始打包我们的一些应用,不得不说,我已经爱上了Docker这个工具。在AWS EC2上,它的存在使我们的工作方便了许多。然而,我们遇到的唯一问题是Docker的磁盘占用问题。...我们注意到随着时间的推移,Docker似乎用了主机的所有磁盘空间。输入df -h 显示 /var/lib/docker 目录增长到几乎覆盖整个磁盘的程度。所以我们四处寻找,得到了以下的解决办法。...1.确保已退出的容器被删除 如果一个docker 容器存在,这个容器不能被自动删除。你可以通过 docker ps -a 命令查看所有的容器。...这样做好处是为了让它在本地的“缓存”中有必要的镜像文件。因为当你想pull一个依赖于那些镜像文件的镜像,或者当你创建一个镜像文件,你可以使用本地缓存中的镜像文件。坏处是这极大地占用了磁盘空间!...当程序运行时,它将会删除所有不需要的卷,并且释放空间。 4.一切都好,我仍然需要运行吗? 然后,下一个问题是,尽管一切都很好,但当我们的服务器填满,我们必须手动运行它。这样很麻烦!

    2.6K70

    【译】现代化的PHP开发--TDD

    如果偶然地从重构中引入了一个错误,我们的测试将在其出现后立即报告它。因此,重构是在修改任何代码后立即运行测试的自然方法。 TDD 单元测试 TDD使我们可以测试驱动开发周期。...在PHP中使用TDD,显然,我们需要定义将要进行的测试类型。TDD中最常见的测试是单元测试,是单元的应用程序中最小的可测试部分,通常表示出来的就是一种类方法。...然后使用PHPUnit函数assertEquals检查它是否返回正确的值。 任务的最后一部分是运行PHPUnit,并确保它通过所有测试。...根据我们的经验,按测试目的对双重测试进行分类非常有用。 这不仅使我们易于理解测试用例,而且使我们的代码对其他方友好。...在这个阶段,我们将看一下我们先前编写的代码,并思考使它变得更简介,更好的方法。 我们在total方法中使用了foreach循环。它遍历$ items数组并返回每个元素的总和。

    99320

    PHPUnit 手册【笔记】

    方法和一个或多个@depends测试接收数据,那么来自于数据供给器的参数将先于来自所依赖的测试参数 5.如果一个测试依赖于另一个使用了数据供给器的测试,仅当被依赖的测试至少能在一组数据上成功,依赖于它的测试才会运行...使用了数据供给器的测试,其运行结果是无法注入到依赖于此测试的其他测试中的 6.所有的数据供给器方法的执行都是在对setUpBeforeClass静态方法的调用和第一次对setUp方法的调用之前完成的。...,并在每个差异附近提供少数几行上下文信息 三、命令行测试执行器 1.对于每个测试运行,PHPUint命令行工具输出一个字符来指示进展: 【.】当测试成功输出 【F】当测试方法运行过程中一个断言失败输出...【E】当测试方法运行过程中产生一个错误时输出 【R】当测试被标记为有风险输出 【S】当测试被跳过时输出 【I】当测试被标记为不完整或未实现时输出 2.PHPUnit区分失败(failure)与错误(...* 修复缺陷 2.寻找缺陷的最小可靠重现使你有机会去真正检查缺陷的原因。

    1.7K40

    PhpStorm 2022 for Mac(PHP集成开发)

    代码质量分析当您键入并检查整个项目以查找可能的错误或代码异味,数百个代码检查会验证您的代码。快速修复大多数检查可以很容易地立即修复或改进代码。Alt + Enter显示每个检查的适当选项。...简易代码导航和搜索PhpStorm可帮助您更有效地绕过代码,并节省处理大型项目的时间。只需点击一下即可跳转到方法,函数或变量定义,或搜索其用法。调试零配置调试使调试PHP应用程序变得非常简单。...测试您可以在PhpStorm中正确开发PHPUnit测试,并通过使用上下文菜单选项从目录,文件或类立即运行它们。来自PHPUnit的代码覆盖显示了您的代码覆盖了多少测试。...连接到数据库,编辑模式和表数据,运行查询,甚至用UML图分析模式。SQL代码可以注入其他语言或在SQL编辑器中编辑,语法突出显示,智能代码完成,动态代码分析,代码格式化和导航可用。...其他特性通过支持Vagrant支持,Docker,Composer等,从IDE执行许多常规任务。

    87020

    Travis CI 持续集成服务构建 Composer 类库简明教程

    当我们将本地的项目推送(push)到 Github ,Packagist 和 TravisCI 服务会触发相关的钩子服务,去获取最新的代码。 如果没有账号的话赶紧去 注册 GitHub 帐号 吧!...它绑定 Github 上面的项目,只要有新的代码,就会自动抓取,然后提供一个运行环境,执行测试,完成自动化构建,它还能将项目部署到我们的应用服务器。...支持 Travis CI 服务,创建可持续构建项目 Travis CI 提供一个运行环境,然后执行测试,完成构建,甚至还能将我们的项目部署到应用服务器。...有关 PHPUnit 命令行工具可以查看 命令行测试执行器 相关文档。 虽然,我们现在能够成功执行测试脚本,但是如果我们的测试用例有多个的话,这样一个一个写出每个测试文件似乎有点傻乎乎。...作为单元测试工具,并运行 .

    1.2K10

    Docker在PHP项目开发环境中的应用

    Docker的出现让上面的问题有了更好的解决方案,虽然个人对于Docker大规模应用到生产环境还持谨慎态度,但如果仅仅考虑测试及开发,私以为Docker的容器化理念已经是能真正解决环境部署问题的银弹了。...同理还可以实现phpunit、npm、gulp等命令行工具在容器内运行。...Redis容器 为了方便演示,Redis仅仅作为缓存使用,没有持久化需求,因此Dockerfile仅有一行 ``` FROM redis:3.0 ``` 容器的连接 上面已经将原本在一个容器中运行的服务分拆到多个容器...Composer、PHPUnit等。...经过团队实践,原本大概需要1天时间的环境安装,切换到Docker后只需要运行10余条指令,时间也大幅缩短到3小以内(大部分时间是在等待下载),最重要的是Docker所构建的环境都是100%一致的,不会有人为失误引起的问题

    2.5K100

    php集成开发工具:PhpStorm 2022.2.1汉化版「免账号登录」

    代码质量分析当您键入并检查整个项目以查找可能的错误或代码异味,数百个代码检查会验证您的代码。快速修复大多数检查可以很容易地立即修复或改进代码。Alt + Enter显示每个检查的适当选项。...简易代码导航和搜索Phpstorm可帮助您更有效地绕过代码,并节省处理大型项目的时间。只需点击一下即可跳转到方法,函数或变量定义,或搜索其用法。调试零配置调试使调试PHP应用程序变得非常简单。...测试您可以在Phpstorm中正确开发PHPUnit测试,并通过使用上下文菜单选项从目录,文件或类立即运行它们。来自PHPUnit的代码覆盖显示了您的代码覆盖了多少测试。...连接到数据库,编辑模式和表数据,运行查询,甚至用UML图分析模式。SQL代码可以注入其他语言或在SQL编辑器中编辑,语法突出显示,智能代码完成,动态代码分析,代码格式化和导航可用。...其他特性通过支持Vagrant支持,Docker,Composer等,从IDE执行许多常规任务。

    1.5K30

    使用kind和GitHub Actions重建Linkerd的持续集成

    需求2:浏览构建和测试历史的UI 对于CI系统来说,浏览测试历史的UI似乎是显而易见的,但是当我们收集需求,我们并没有认为任何事情都是理所当然的。...这意味着我们可以在一个高性能的Packet主机上运行快速、缓存Docker构建和kind集群。这些主机的性能足以让我们并行地运行所有的集成测试,并在此之上并行地运行多个PR。...例如,我们可以让两个任务并行运行,一个用来启动一个kind集群,另一个用来构建Docker。当两者都完成,我们就可以开始集成测试了。另外,GitHub Actions对开源项目是免费的。...几个月过去了,我们的团队开始试验Docker Buildx。这个工具使我们能够将Docker构建缓存保存到一个文件中,以便在随后的GitHub Actions作业中重用。...缓存你的[docker]构建 在CI运行之间缓存Docker构建是加快CI周转时间的关键因素--这适用于所有形式的构建缓存DOCKER_HOST=ssh:// 通过SSH使用Docker非常方便。

    75031

    PHPer:让我们拥抱敏锐吧

    PHP时代,远没有结束 关于PHP未来的忧虑由来已久,一边是掌控着把持系统的微软的.net平台,一边是红透半边天的Java技巧:PHP似乎已经走到了尽头。...不过,当我们回 想过往,就会发明,PHP实在从来都是在别人视为穷途末路的空间里发展。ASP、JSP、CGI的时代,PHP的处境不比今天好过,压力也不比今天小, 而成果呢?...而PHP最好的选择就是敏锐开发:把人当成软件开发的核心;保持设计的简略性;用测试驱动开发;用重构保持架构的硬朗;用面向对象的设 计原则和设计模式来领导设计,使软件保持机动,能适应需求的变动。...PEAR中,已经为PHP5的开发者 准备好了一个用于单元测试的包:PHPUNIT2;越来越多的PHP开发者开端在自己的工作中或多或少的参加敏锐开发的要素;而支撑重构PHP的IDE信 任不久就会呈现。...网站: phppatterns.com php和设计模式的讨论 lastcraft.com 单元测试工具***Test和phpunit相干先容 另外《PHP&MORE》Vol2 也会有PHPUNIT

    696130

    PHPUnit 单元测试都不会的 PHPer 没法写出高质量的代码

    断言 想要更加细致的了解断言的话,这里推荐一篇博客:https://www.jianshu.com/p/9b8c88deed6a 在软件测试特别是在单元测试,必用的一个功能就是“断言”(Assert)...} 并且会出现 vendor/bin/phpunit 文件,直接运行即可 如何编写单元测试 所有类需要继承 PHPUnit\Framework\TestCase , setUp 函数用于初始化测试对象,...($msg) 断言输出 $this->expectOutputString(‘Hello’);echo “Hello”; getActualOutput() 获取实际输出 如何运行单元测试 # 运行全部测试...phpunit # 运行某个分组的单元测试 phpunit --group GroupA # 运行指定测试类的所有测试用例 phpunit tests/xxxxTest.php # 运行所有测试类中满足...filter条件的方法 phpunit --filter xxxFunc # 运行某个测试类中满足filter条件的 phpunit.xml 是什么 phpunit.xml 是一个XML格式的配置文件,

    1.2K10

    搭建高性能的私有 Composer 镜像服务

    一上来就购置顶级的专线、优化改进构建脚本使用缓存、将程序完全打包成镜像是不合理的,因为除了带来巨额成本外,还会带来一些意想不到的问题:缓存内容状态是否“健康”、缓存文件一致性如何保障、代码资源类容器的后续管理...软件包安装模式的改变 使用镜像之前,composer 会从各种来源安装软件包,比如 GitHub、SVN、GitLab、Zip、tarball… 下载软件包的网络访问质量是一个很难保障的事情,尤其是当我们需要同时访问不同服务商分布在天南海北的服务器的时候...最难过的是,如果我们需要多次部署安装,或者在新的服务器上进行安装,这个时间损耗会不断放大,而且还不能够保障多台服务器安装结果一致,因为不确定软件包是否被完整下载。...up 启动服务,等待软件包被缓存完毕就可以正式使用了。.../phpunit' in version '4.8.36'. composer_1 | Dumping package 'sebastian/recursion-context' in version

    1.7K40

    PHP的使用技巧总结

    以下是一些常见的优化策略: 缓存 使用缓存可以显著提高应用性能。常见的缓存机制包括APC、Memcached和Redis。...单元测试 编写单元测试不仅可以确保代码的正确性和健壮性,还能帮助在项目扩展和重构避免引入新的错误。PHPUnit是PHP中最流行的单元测试框架。...PHPUnit基础 首先,安装PHPUnit: composer require --dev phpunit/phpunit 然后,创建一个简单的测试类: use PHPUnit\Framework\TestCase...Calculator(); $result = $calculator->add(2, 3); $this->assertEquals(5, $result); } } 运行测试...: vendor/bin/phpunit tests Mock对象 在单元测试中,使用Mock对象可以模拟依赖关系,确保测试的独立性和纯粹性: use PHPUnit\Framework\TestCase

    9910

    不会Phpunit单元测试PHPer写不出高质量的代码

    单元测试是什么意思 它可以减少一些细节错误的发生,如错误报告是否没有错误,输入参数和结果是否符合要求等。 便于今后的改造和维护。...当我需要验证这个函数的正确性,我需要模拟两个输入参数,并确定函数的返回值是否是两个输入参数的和。确定返回值是否准确的过程称为断言。...} 并且会出现 vendor/bin/phpunit 文件,直接运行即可 如何编写单元测试 所有类需要继承 PHPUnit\Framework\TestCase , setUp 函数用于初始化测试对象,...phpunit # 运行某个分组的单元测试 phpunit --group GroupA # 运行指定测试类的所有测试用例 phpunit tests/xxxxTest.php # 运行所有测试类中满足...filter条件的方法 phpunit --filter xxxFunc # 运行某个测试类中满足filter条件的 phpunit.xml 是什么 phpunit.xml 是一个XML格式的配置文件,

    1.3K20

    创建并运行一个新的 Laravel 项目

    经过 PHP 入门到实战系列的基础学习,接下来我们就可以正式开始 Laravel 框架的学习和使用了。而这一切都需要从创建一个新的 Laravel 项目开始。...4、运行 安装好 Laravel 项目,了解了目录结构及其作用,以及如何对项目进行配置后,我们就可以运行这个应用了,启动方式因开发环境而异,我们在前面的 Homestead、Laradock、Valet...5、测试 Laravel 开箱提供了基于 PHPUnit 进行单元测试和功能测试的功能,并且为我们做好了基础配置(phpunit.xml)和示例代码(位于 tests 目录下),由于本节并没有编写任何代码...,所以可以通过以下命令运行示例测试: ..../vendor/bin/phpunit 测试结果通过: ? 注:我们后续教程将以这篇教程创建的 blog 项目为基础,且访问域名为 http://blog.test,后面不再重复声明这一点。

    6.8K30

    60 个最棒的 DevOps 开源工具

    版本控制系统 Subversion Subversion 是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。...PHPUnit PHPUnit 是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。...OpenShift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试运行和管理他们的应用。...Cloud Foundry Cloud Foundry 是VMware于2011年4月12日推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发 人员能够在几秒钟内进行应用程序的部署和扩展...具体来 说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。

    4.4K31

    60个DevOps开源工具,你在用哪些?

    5.版本控制系统 Subversion Subversion 是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。...8.PHPUnit PHPUnit 是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。...OpenShift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试运行和管理他们的应用。...2.Cloud Foundry Cloud Foundry 是VMware于2011年4月12日推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展...具体来说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。

    1.4K90
    领券