私はDockerを使い始めていますが、私はまだプロのWordPress開発プラクティスに慣れていません。私はカスタムのWordPressテーマ開発ができるように(私のMac上で)Docker開発環境をセットアップしたいと思います。
これまでにDockerを使用していて、既にDockerを使用していると仮定して、どのように設定しましたか? Dockerfileとdocker-compose.ymlはどのようなものですか?私はこれが以前に行われたと確信しています。これを設定できる1行のコマンドがすでにあるのであれば、私は驚かないでしょう。
更新: /このトピックを以下の質問に絞り込んだ。
いくつかの有用なコメントを入力して空白または代替の回答を埋め込もうとして、部分的な回答を投稿して議論を開始します。
DockerはLinux上でのみ動作します。だから私たちのMacでDockerを使うためには、Linux VMでDockerを走らせるboot2docker
をインストールする必要がある。 Homebrew を使用してboot2docker
をインストールできます。
brew install boot2docker
インストールが完了したら、boot2dockerをセットアップして起動します。
boot2docker init
boot2docker start
次に、docker-composeがboot2docker VM内でDockerを見つけられるように、いくつかの環境変数を設定するためのコマンドを実行する必要があります。
eval "$(boot2docker shellinit)"
新しいターミナルウィンドウを開くたびにコマンドを実行する必要がないように、変数をエクスポートする行を~/.bash_profile
に追加することをお勧めします。
docker-compose
(もともとはfig
と呼ばれる)というDockerプラグインがあり、Dockerコンテナー間の関係を簡単に定義することができます。 Homebrewを使ってインストールすることもできます。
brew install docker-compose
Dockerレジストリに 公式のWordPress Dockerイメージ があります。これは、Dockerをすべて正常に機能させるために必要なすべてのコマンドラインフラグを使用して手動で起動することに関するいくつかの情報を含みます。私が言うことができる限り、私達はdocker-compose
を使用するので、あなたはそれらすべてをスキップすることができます。 WordPressテーマを作成するディレクトリに、次の内容のdocker-compose.yml
を作成します。
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
volumes:
- .:/var/www/html/wp-content/themes/my-theme-name
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
volumes
設定は現在のディレクトリにある私たちのテーマファイルをDockerコンテナの中の新しいテーマディレクトリにリンクします。
docker-compose up
を実行すると、WordPressのインストールを実行する2つのDockerコンテナ( "wordpress"と "db")をセットアップします。
docker-compose.yml
設定では、ポート80をポート8080に転送することを指定しています。また、boot2docker
は、そのVMを特定のIPアドレスで実行します。したがって、URLを把握するためには、boot2docker ip
コマンドを使用する必要があります。
open http://$(boot2docker ip):8080
コンテナーを稼働させたので、いくつか質問があります。
boot2docker shellinit
にリストされているエクスポートをコピーして貼り付ける以外に、boot2docker環境変数を自動設定する方法はありますか?
Railsアプリケーションで作業しているときは、 Pow を使用して、特定のポートやIPで作業するのではなく、名前付き.dev
ドメインを使用してアプリにアクセスできるようにします。 http://mysite.dev を使用してホストにアクセスできるように、システム(またはPow)を設定するにはどうすればよいですか?
逃したステップはありますか?または最後に追加する必要がある手順はありますか?
これに対する私の好ましい解決策は、Dockerと組み合わせてComposerを使用することです。 Dockerが環境を処理し、Composerがテーマ、プラグイン、その他必要なパッケージを含む依存関係を処理します。
これが私自身のローカルDocker設定です。
https://github.com/alexmacarthur/wp-skateboard
そして、これがComposerを使用して_sテーマをダウンロードし、それを私のthemes
ディレクトリに配置するブランチです。
https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores