【发布时间】:2021-03-26 13:45:26
【问题描述】:
我们目前正在开发一个 python 包,它将通过 AzureDevOps Pipeline 构建,结果包将存储在 Azure Artifacts 中。
在生产中,我们直接从 Azure Artifacts 将该包直接安装到一些数据块集群。 Benfit 是,只要有新版本的软件包可用,就会在启动集群时安装它
为了开发,我想在本地 spark 环境中使用 docker 容器做类似的事情。我们已经设置了 docker 容器,这些容器除了一件事外工作正常。
当我运行 docker-compose 命令时,我想从 AzureArtifacts 安装最新版本的包。 因为我们需要访问令牌才能在我们的设置中获取这个包,所以我不能在 git Repo 中提供这个令牌。因此,我需要一种将令牌安全地提供给 docker-compose 命令并从启动安装包的方法。
另外,如果使用 Dockerfile 作为命令,每次我们会得到一个新版本的包,我必须重新构建 docker-images。
所以这些任务需要在我的脑海中由用户完成(假设 DockerImages 已经构建):
- 有一个存储令牌的本地文件
- 使用我的 Docker-compose 命令启动本地环境(顺便说一下,使用 spark-master 和 worker 以及 jupyter-notebook)
- 自动:从本地文件获取令牌,将其提供给 docker 容器中的任何启动脚本,然后从 Azure Artifacts 安装包。
由于我不是 Docker 方面的真正专家,因此我发现了一些关于 ENTRYPOINT 和 CMD 的主题,但不明白这些以及具体要做什么。
有没有人提示我们可以通过哪种方式轻松实现上述逻辑?
PS:为了测试,我尝试使用命令安装软件包:在使用纯文本令牌进行 docker-compose 期间,安装工作正常,但无法再访问 juypter notebook :-(
希望有人对我的目标有想法或更好的方法。
最好的问候
【问题讨论】:
标签: docker apache-spark docker-compose jupyter-notebook