🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

3041閲覧

docker コンテナの中身を GitHub リポジトリに接続したい

coffeesleep

総合スコア5

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/03/07 16:15

編集2021/03/07 16:18

Docker 初心者です。Docker で Wordpress サイトを作ったのですが、このサイトを GitHub リポジトリと連携させたいです。(主な用途としては、コードの共有やコミット履歴から過去のバージョンを参照したい)

以前は Vagrant と Virtualbox でローカル環境を作っていて、vagrant ssh した中から Github の認証を行い、Github リポジトリとプルしたりプッシュしたりコミットしたりできていたのですが、docker になってできなくなってしまいました。(Docker に変更した理由は、M1 Mac に変えて Virtualbox が対応していなかったからです)

既存のリポジトリをプルする方法でも、新しいリポジトリを生成する方法でもどちらでも構いません(後者の方が少し望ましいかもしれないです)。

Google で調べたりすると「Dockerfile を書き換える」というような記事が多くみられるのですが、docker 初心者なのですが記事を参考に docker-compose.yml でコンテナを作成したため dockerfile の存在や居場所がいまいちわかりません。この docker-compose.yml の中に何か記述を足せばいいのでしょうか?

参考記事はこちら:https://qiita.com/Nerosui777/items/dfef9612e4bbb86af3b5

docker-compose.yml の中身はこのようになっています↓

yml

1version: '3' 2 3services: 4 db: 5 image: mariadb 6 volumes: 7 - db_data:/var/lib/mysql 8 restart: always 9 environment: 10 MYSQL_ROOT_PASSWORD: somewordpress 11 MYSQL_DATABASE: wordpress 12 MYSQL_USER: wordpress 13 MYSQL_PASSWORD: wordpress 14 15 wordpress: 16 depends_on: 17 - db 18 image: wordpress:latest 19 ports: 20 - "3000:80" 21 restart: always 22 environment: 23 WORDPRESS_DB_HOST: db:3306 24 WORDPRESS_DB_USER: wordpress 25 WORDPRESS_DB_PASSWORD: wordpress 26volumes: 27 db_data:

Vagrant / Virtualbox のように SSH キーを生成して進めようとすると、

bash: ssh keygen command not found

と表示されてしまいます。こちらも調べてみたのですがなかなか一筋縄には行かなそうで、つまずいてしまいました。

Vagrant でできた手順はこちらを見て実施しました:https://docs.github.com/ja/github/authenticating-to-github/checking-for-existing-ssh-keys

もしどなたか解決方法をご存知でしたら、教えていただけるととてもありがたいです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2021/03/07 16:39

dockerならsshで入らなくても、execで入れば良いのでは。
coffeesleep

2021/03/07 17:02

コメントありがとうございます。何か間違えていたら申し訳ないのですが、docker の中に exec で入ってファイルを見ることはできているのですが、ssh が問題になるのは、こちらの Github ドキュメントを参照して ssh-keygen をするときに command not found と出てきてしまう次第です。 https://docs.github.com/ja/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
matsuand

2021/03/14 01:02

エラーは openssh がないから発生しているものなので、直接的には openssh-client をインストールすれば解決すると思います。ただ不安を感じます。コード共有を目的とするとのことですが、docker イメージを関係者に配布してコード共有を行うということでしょうか? 開発関係者がすべて公開鍵、秘密鍵の生成や管理をイメージ内で行うということですか? wordpress サーバーにおいてソース管理と機密情報管理を行わせるというのは、不自然というか不適切というか危険なことに見えます。ソース管理も機密情報管理も、docker ホスト側で行ない、サイト起動に必要なモジュールなりファイルなりだけを連携する(コピーする、volumeを介して共有化する)という方法をとるのが適当かと思います。
coffeesleep

2021/03/14 13:43

matsuand 様、ご丁寧にご意見をいただきありがとうございます。Docker について存じ上げてないことが多く、とても勉強になりました。 この目的なのですが、共有に加えて、前の環境(Docker ではなく Vagrant + Virtualbox)で Github を使っていたのは定期的に commit をしてバージョン管理をする、何かバグが出てしまった時に前のバージョンを参照しやすくする・戻しやすくするという目的で使用しておりました。Docker で Github に接続するのが危険な場合、一般的な開発者の皆様はどのようにコミットしたりバージョン管理したりしているのでしょうか? 不勉強で申し訳ありませんが、ご意見いただけますと幸いです。よろしくお願いいたします。
matsuand

2021/03/15 05:13

Dockerだからダメというのでなく、サーバーには普通ソースコードは置かないし秘密鍵は置かないでしょうという話です。お間違いなく。したがってご説明済のvagrantで実施した作業内容も同じく不適当かと思います。私は開発実践が皆無なので想像でしか物が言えません。適当なドキュメントや他の経験者の談をお調べください。ソースコードは M1 Mac 上で管理したらよいのでは? 他の開発者で Windowsを用いる者がいれば Windows 上で行えばよいのでは?
coffeesleep

2021/03/15 15:51

なるほどです、趣旨理解いたしました。ご丁寧に確認をいただき、ありがとうございました。
guest

回答1

0

wordpressのイメージ内で作成されたファイルをgithubで管理されたいと理解しました。

もっともシンプルにできることは、wordpressのイメージ内で作成されたファイルがホストOS(MacPCなど)でも参照できるようマウントし、ホストOS側でgithubと接続されると良いかと思料します。

別途、docker内でgithubと接続する方法としてQittaに記事があります。
Dockerで作るGitHub環境
ただし、それ用のdocker image(記事内ではcentos)を使用しているため、wordpressのイメージ内で同じことを実施できるかは不明で、不可の場合はご自身でDockerfileを記載いただく必要があります。

投稿2021/06/12 16:17

yurak

総合スコア160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問