Golangなどの言語を使って、複数のDockerコンテナで連携するようなアプリケーションを作成しています。
そこで質問なのですが、データベースのモデルの構造体など複数のコンテナで共通で利用したいものがあります。そういった場合にどのように実装すればよいのでしょうか。

例えば1つのシステムの中に2つのA,Bというアプリケーションがある場合2つのDockerfileでそれぞれのコンテナを定義しています。この2つのアプリケーションは同様のデータベースにアクセスしているため共通の構造体ModelAを利用します。

現在、それぞれのアプリケーションA,BにModelAが定義されたmodel.goを配置しています。
コードが共通なので1つのソースコードで済むようにしたいのですが、どのように実装すればよいのでしょうか。

考えられる方法として、DockerのコンテキストをA,Bの親ディレクトリにしてA,Bのディレクトリの兄弟ディレクトリに共通のライブラリのディレクトリを作成し、そこにmodel.goを配置する方法があります。
しかしこの方法では例えばコンテナAに必要のないアプリケーションBのソースコードも含まれてしまいます。

もう1つの方法として、共通ライブラリを別のリポジトリにして、ビルド時にgo getで取得する方法を考えました。この手法はパブリックリポジトリに共通ライブラリがある場合は簡単に実装できるのですが、プライベートリポジトリの場合は少し複雑になってしまいます。

そこで、現在はそれぞれのコンテナに共通のコードを書くという方法を採用しています。
他に良い方法がありましたらお教えいただけますでしょうか。