※当サイトの記事には、広告・プロモーションが含まれます。

Dockerを利用したアプリケーションのGit管理はどうするのが良いのか?

gigazine.net

⇧ 有益なサービスを侵害するの止めて欲しい...

その技術力を犯罪以外のところで発揮して欲しいんよな...

大元のDockerイメージはDocker Registryでしか管理できないっぽい

そも、Docker Registryとは?

matsuand.github.io

Docker Registry

このページでは、オープンソースである Docker Registry を使って、独自にレジストリを提供する情報を示しています。 Docker Hub はホスト提供込みの Registry であり、さまざまな機能を追加することができます。 たとえばチーム、組織、ウェブフック、自動ビルドなどです。 詳しくは Docker Hub を参照してください。

https://matsuand.github.io/docs.docker.jp.onthefly/registry/

これは何か

Registory とは、ステートレスで拡張性の高いサーバーサイドのアプリケーションであり、Docker イメージを保存し提供するものです。 Registry はオープンソースであり Apache ライセンス のもとに提供されています。

https://matsuand.github.io/docs.docker.jp.onthefly/registry/

システム要件

Registry は Docker engine バージョン 1.6.0 またはそれ以降 と互換性があります。

https://matsuand.github.io/docs.docker.jp.onthefly/registry/

⇧ とあるので、独自に構築することもできるらしい。何と言うか、細かい話になってしまうんだけど「Registry」なのか「Registory」なのかハッキリさせて欲しいですな...

オライリーが公開してる情報だと、

www.oreilly.com

⇧ Docker Hubを使っていないように見えるので、独自にDocker Registryを構築しているってことなんですかね?

Dockerを利用したアプリケーションのGit管理はどうするのが良いのか?

なるほど、大元となるDockerイメージは、Docker Registryでしか管理できないということで、Dockerイメージ以外についてをGitリポジトリで管理することになると。

forums.docker.com

⇧ Dockerイメージのサイズが大きすぎるから、Gitのリポジトリで管理するのはNGらしいので致し方ないと。

なので、

hosting.analythium.io

⇧ 上記サイト様の図のように、CI/CDを使っていようが使わまいが、Dockerを利用したアプリケーションをGitでバージョン管理するには、

  • Git Repository
  • Docker Registry

の2つは必ず必要になってくると。

勿論、Docker以外のコンテナ型の仮想化による環境だと変わってくるのかもしらんけど、少なくともDockerを利用している場合は、2か所でアプリケーションに必要なファイル群を管理する必要があるということになるかと。

何となくではあるけども、選択肢が無いってことですな。

なので、素直に、Dockerfileやdocker-comopse.ymlをソースコードと同じ様にGitリポジトリで管理する感じになるんですかね。

設定ファイル系については、

qiita.com

⇧ Gitの管理から除外すると。

確かに、設定ファイルの雛型と、詳細な設定方法については、プロジェクトのメンバーだけが参照できるWikiなどにまとめておいて、参照先が分かるようにしておくのが良さ気ですね。

となると、

  • Git Repository
  • Docker Registry
  • プロジェクトのメンバーだけが参照できる共有サーバーやサービス

の3つでDockerを利用したアプリケーションに必要なファイル群を管理していく形になるということですかね。

必要な情報がどこにあるかが管理できていると、環境構築をスムーズに進めることができそうですし、環境構築がスムーズにいくと、心の平穏も保たれますものね(涙目)

ただ、ホスト側のディレクトリとかマウントしたりが必要になってくると、ディレクトリ作成して必要なファイルを配置したりとかが発生するからして、Gitで管理してるファイルをどこに配置するかとかが分かり辛くなってきたりするんよね...

このあたり、上手い管理の仕方ないものかしら...

ちなみに、

hub.docker.com

github.com

⇧ Docker HubでのOpenJDK 8と11の開発を止めたと言っているけども、利用自体は普通にできるってことなんかね?

脆弱性とかが発覚してもメンテナンスとかもしないってことなんかな?

非推奨となってしまったOpenJDKのDockerイメージの代替としては、 

www.docker.com

zenn.dev

Spring Frameworkを利用しているなら、eclipse-temurinを使う感じが良さそうってことですかね。

フレームワークとか使ってないJavaアプリケーションの場合は、どれを使うのが良いのかね?

毎度モヤモヤ感が半端ない...

今回はこのへんで。