我正在创建一个使用Python、Mongo和Redis的API,我想使用Gitlab CI。
我必须构建一个满足所有这些需求的Dockerfile吗?或者有没有一种方法,只需在.gitlab-ci.yml中编写一些指令,然后调用Dockerhub中的不同镜像?
发布于 2017-11-14 02:08:23
是的应该这样做。尽管这不是Gitlab特定的问题(因此也是答案),但它被认为是分离任务和功能的最佳实践(在Docker术语中;每个容器一个关注点)。我不想称它为微服务方法,但您应该考虑拆分所有进程。
以下是一些基本概念,可帮助您:
既然您提到了Python和API,我想您的应用程序是用Python编写的,并且您使用MongoDB和Redis作为持久数据存储?
看看官方的Docker镜像以及如何使用它们,这应该会让你的生活更容易拆分关注点:
还有一个official Python image可以在你的旅途中帮助你。只需添加你的应用程序代码,然后就可以开始了!
发布于 2017-11-14 03:07:08
我发现你可以在.gitlab-ci.yml中写一个标签:
- services: - redis:4.0.2 - mongo:3.4.10
它使用Dockerhub上的其他服务。
https://docs.gitlab.com/ce/ci/docker/using_docker_images.html#how-to-use-other-images-as-services
https://stackoverflow.com/questions/47269808
复制相似问题