7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vagrant up で docker-compose を起動する

Last updated at Posted at 2020-03-04

目的

  • Vagrant で構築する VM 内に Docker と docker-compose をインストールし、docker-compose を起動する。

vagrant-docker-compose プラグイン

shell プロビジョナ等で Docker や docker-compose をインストールして起動しても良いのですが、まさにこういった用途に合ったプラグインがあったのでこれを利用します。

$ vagrant plugin install vagrant-docker-compose

ファイル構成

VM の中で php イメージを docker-compose で起動するようにします。
ファイル構成は下記のようにしています。

public/
  + index.php
docker-compose.yml
Vagrantfile

index.php は phpinfo() を実行するだけです。

<?php
phpinfo();

docker-compose.yml では、php:7.4-apache-buster を起動します。volume に ./public (VM 内では /vagrant/public)をマウントしています。

version: '3'
services:
  web:
    image: php:7.4-apache-buster
    ports:
      - "80:80"
    volumes:
      - ./public:/var/www/html:cached

Vagrantfile では、docker プロビジョンと docker-compose プロビジョンを指定しています。run: "always" を指定しているので、vagrant up 実行時に docker-compose up -d が実行されます。

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  config.vm.network "private_network", ip: "192.168.33.30"

  config.vm.provision :docker
  config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", run: "always"
end

実行結果

vagrant up を実行すると、VM が起動し、docker-compose が実行されます。

$ vagrant up
(snip)
==> default: Pulling web (php:7.4-apache-buster)...
    default: 7.4-apache-buster: Pulling from library/php
    default: Digest: sha256:c496c0f962eaaea0f52d9c068bf331fe477703d4657f99b955a2a35a4c3486c4
    default: Status: Downloaded newer image for php:7.4-apache-buster

ブラウザで、VM の IP にアクセスすると phpinfo() の結果が表示されます。

スクリーンショット 2020-03-04 17.52.29.png
7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?