当前位置: 首页 > 知识库问答 >
问题:

有没有一种优雅的方法让conda在docker构建期间安装第三方Go语言包?

颜文康
2023-03-14

我正在准备一个带有Ubuntu v18的docker映像。04用于s/w开发。我包括miniconda来管理开发环境,这都是golang。我使用YAML文件创建环境:

RUN conda env create --file goDev.yml

我还希望在docker启动时激活conda环境。这有点棘手,b/c conda必须首先初始化,但JaegerP提供了一个很好的解决方法,涉及到更新。谢谢。

不幸的是,我还需要在golang上安装第三方YAML包。我必须激活环境才能安装软件包,因此它让我回到了JaegerP帮助我克服的原始问题:在环境初始化之前我无法激活环境,在docker build b/c期间我无法初始化,我必须重新启动shell。

换句话说,这工作得很好:

运行conda env create--file goDev。yml

当docker启动时,所需的conda环境被激活,不幸的是没有安装外部YAML包。这不起作用b/c conda环境在初始化之前不能被激活,初始化需要重新启动shell:

运行conda env create--file goDev。yml

我可以更新。如果此文件不存在,请进一步安装YAML包:

/root/go/pkg/mod/cache/download/gopkg.in/yaml.v2

是否有一个更优雅的解决方案,使我能够在docker构建期间安装第三方golang包,而不是在每次运行映像时检查它?

共有1个答案

魏翰
2023-03-14

conda run函数提供了一种在环境上下文中运行代码的干净方法,而无需手动激活。试试类似的东西

RUN conda env create --file goDev.yml 
  && rm goDev.yml 
  && conda run -n go_dev go get gopkg.in/yaml.v2 
  && echo '. /opt/conda/etc/profile.d/conda.sh && conda activate go_dev' >> ${HOME}/.bashrc

此外,您可能希望使用结束所有涉及Conda的跑步链

conda clean -qafy

以帮助最小化Docker图像层大小。

 类似资料:
  • 问题内容: 我有看起来像这样的代码: 它返回一个长度为32的字符串,但我认为它不是有效的UUID。如果它是一个真正的UUID,为什么它是一个UUID,什么是代码,修改的值的目的和。 有没有更好的方法来生成UUID? 问题答案: 这些行将字节6和8的值限制在特定范围内。返回range内的随机字节,这些字节不是UUID的所有有效值。据我所知,这应该对片中的所有值进行。 如果您使用的是Linux,则可以

  • 本文向大家介绍Ubuntu系统安装Ruby语言的三种方法,包括了Ubuntu系统安装Ruby语言的三种方法的使用技巧和注意事项,需要的朋友参考一下 Ruby是一个开源的动态编程语言,它有优美的语法,可用于构建可伸缩的Web应用程序。ruby gems可以很好地增强Ruby开发者的开发效率。 要在Ubuntu系统上安装Ruby,有几种方法,每种方法都只需几步就能搞定。 方法一:使用apt-get安装

  • 有没有一种好的方法要求类中的每个公共方法使用部分(希望不是每次都写)?

  • 本文向大家介绍Python安装第三方库的3种方法,包括了Python安装第三方库的3种方法的使用技巧和注意事项,需要的朋友参考一下 【方法一】: 通过setuptools来安装python模块 首先下载 http://peak.telecommunity.com/dist/ez_setup.py NOTE: 最好下载个setuptools,本人是15.2版本,里面包含了ez_setup 运行 py

  • 本文向大家介绍Go语言变量创建的五种方法,包括了Go语言变量创建的五种方法的使用技巧和注意事项,需要的朋友参考一下 对于只有 Python 语言经验的朋友,也许会不太理解声明这个词,在 Python 中直接拿来就用,也不用声明类型啥的。 Go 语言是静态类型语言,由于编译时,编译器会检查变量的类型,所以要求所有的变量都要有明确的类型。 变量在使用前,需要先声明。声明类型,就约定了你这个变量只能赋该

  • 本文向大家介绍python学习之第三方包安装方法(两种方法),包括了python学习之第三方包安装方法(两种方法)的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了python学习之第三方包安装方法,最近在学习QQ空间、微博(爬虫)模拟登录,都涉及到了RSA算法。这样需要下一个RSA包(第三方包),在网上搜了好多资料,具体有以下两种方法: 第一种方法(不使用pip或者easy_insta

  • 问题内容: 我的孩子做了一项家庭作业,用Java编写二十一点。我为他提供了一些帮助,但大部分时间他都是自己完成的,实际上效果还不错。他甚至发现了我在计算手值时没有看到的错误。但是,他还没有解决一个难题,我能想到的每个解决方案都非常复杂,而且远远超出了他将能够利用其仍基本的Java技能轻松编写代码的范围。 王牌。实际上,不仅有一个Ace,还有四个Ace,您可能可以一手拿到所有四个Ace。当有一个或多

  • 我正试图为新开发人员在本地开发环境中安装我们的代码库整理文档。我想命令他们: 基于package-lock.json中的版本安装devDependness和依赖项 不更新package-lock.json “npmci”几乎完全符合我的要求,但似乎没有安装devdependency。“npm安装”确实安装devdependency,但有时会修改包锁。json。 我可以想象像“npm安装”这样简单的