私はPython、Mongo、Redisを使用するAPIを作成しています.Gitlab CIを使いたいと思います。さまざまな要件(言語env、データベースなど)をテストするためにGitlab CIドッカーをどのように設定しますか?
これらの要件をすべて満たすDockerファイルを構築する必要がありますか?または、.gitlab-ci.ymlにいくつかの指示を書いて、Dockerhubのさまざまなイメージを呼び出す方法がありますか?
私はPython、Mongo、Redisを使用するAPIを作成しています.Gitlab CIを使いたいと思います。さまざまな要件(言語env、データベースなど)をテストするためにGitlab CIドッカーをどのように設定しますか?
これらの要件をすべて満たすDockerファイルを構築する必要がありますか?または、.gitlab-ci.ymlにいくつかの指示を書いて、Dockerhubのさまざまなイメージを呼び出す方法がありますか?
はい。これはGitlab固有の質問ではありません(したがって答え)。ただし、タスクと関数を分離するのがベストプラクティスと考えられます(Dockerの用語では、コンテナあたり1つの懸念事項)。私はそれをマイクロサービスアプローチと呼んでいませんが、すべてのプロセスを分割することを検討する必要があります。
あなたを助けるためにいくつかの基本的な概念:
あなたはPythonとAPIを言及しているので、私はあなたのアプリケーションはPythonで書かれていると仮定し、永続的なデータストアとしてMongoDBとRedisを使用していますか?
公式ドッカー画像を見て、どのようにそれらを使用するには、これはあなたの人生の分割が非常に簡単に懸念すべきである:
をもありますofficial Python imageあなたのお手伝いをします。ちょうどあなたのアプリケーションコードを追加して行く!
私はあなたが.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