8
10

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 5 years have passed since last update.

Docker コマンドのショートカットをプロジェクトルートに置いたら快適になった

Last updated at Posted at 2017-03-13

Docker を使って開発環境を作ると、手軽に自動化できて便利なのだが、 Docker コマンドをいちいち発行するのが面倒になる。

例)

  • php artisan serve => docker-compose exec web php artisan serve
  • rails s => docker-compose exec web rails s

alias dc='docker-compose' としても、まだ長い。

そこで、 Docker を使っているプロジェクトについては、下記の様な構成にした。

project-root/
|-- bin
|   |-- composer
|   |-- gulp
|   |-- node
|   |-- npm
|   |-- php
|   `-- yarn
|-- docker
|   |-- nodejs
|   `-- web
|-- artisan
|-- composer.json
|-- composer.lock
|-- docker-compose.yml
|-- gulpfile.js
|-- package.json
|-- phpunit.xml
`-- yarn.lock

bin/ 配下のスクリプトはこんな感じ

もちろん chmod +x bin/* をしている。

bin/composer
#!/bin/bash

set -eux

if docker-compose ps | grep web_ | grep -q Up; then
    docker-compose exec web composer $@
else
    docker-compose run --rm web composer $@
fi

こうしておけば、 bin/php artisan serve みたいにできる。

工夫点としては、コンテナの起動有無によって execrun を使い分けているところ。

exec の方がコンテナを起動しない分、コストが低い。

8
10
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
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?