web-dev-qa-db-ja.com

カスタムテーマを開発およびデプロイするためにDockerを設定する方法を教えてください。

私はDockerを使い始めていますが、私はまだプロのWordPress開発プラクティスに慣れていません。私はカスタムのWordPressテーマ開発ができるように(私のMac上で)Docker開発環境をセットアップしたいと思います。

これまでにDockerを使用していて、既にDockerを使用していると仮定して、どのように設定しましたか? Dockerfileとdocker-compose.ymlはどのようなものですか?私はこれが以前に行われたと確信しています。これを設定できる1行のコマンドがすでにあるのであれば、私は驚かないでしょう。

更新: /このトピックを以下の質問に絞り込んだ。

カスタムテーマを開発およびデプロイするためにDockerを設定する方法を教えてください。

12
Andrew

いくつかの有用なコメントを入力して空白または代替の回答を埋め込もうとして、部分的な回答を投稿して議論を開始します。

ステップ1:boot2dockerをインストールして設定する

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に追加することをお勧めします。

ステップ2:docker-composeをインストールする

docker-compose(もともとはfigと呼ばれる)というDockerプラグインがあり、Dockerコンテナー間の関係を簡単に定義することができます。 Homebrewを使ってインストールすることもできます。

brew install docker-compose

ステップ3:docker-compose.ymlを作成する

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コンテナの中の新しいテーマディレクトリにリンクします。

ステップ4:コンテナを起動する

docker-compose upを実行すると、WordPressのインストールを実行する2つのDockerコンテナ( "wordpress"と "db")をセットアップします。

ステップ5:ブラウザでサイトを開く

docker-compose.yml設定では、ポート80をポート8080に転送することを指定しています。また、boot2dockerは、そのVMを特定のIPアドレスで実行します。したがって、URLを把握するためには、boot2docker ipコマンドを使用する必要があります。

open http://$(boot2docker ip):8080

質問

コンテナーを稼働させたので、いくつか質問があります。

  1. boot2docker shellinitにリストされているエクスポートをコピーして貼り付ける以外に、boot2docker環境変数を自動設定する方法はありますか?

  2. Railsアプリケーションで作業しているときは、 Pow を使用して、特定のポートやIPで作業するのではなく、名前付き.devドメインを使用してアプリにアクセスできるようにします。 http://mysite.dev を使用してホストにアクセスできるように、システム(またはPow)を設定するにはどうすればよいですか?

  3. 逃したステップはありますか?または最後に追加する必要がある手順はありますか?

7
Andrew

これに対する私の好ましい解決策は、Dockerと組み合わせてComposerを使用することです。 Dockerが環境を処理し、Composerがテーマ、プラグイン、その他必要なパッケージを含む依存関係を処理します。

これが私自身のローカルDocker設定です。

https://github.com/alexmacarthur/wp-skateboard

そして、これがComposerを使用して_sテーマをダウンロードし、それを私のthemesディレクトリに配置するブランチです。

https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores

0
Alex MacArthur