6
2

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 2019-12-15

Dockerで開発環境を構築してTDDを用いて個人開発をしてたのですが、テストを実行する度に

$ vendor/bin/phpunit

と入力するのめんどくさいですよね。

そこでエイリアスを設定して、puと入力したらテストを走らせるようにしようとしたのですが、コンテナ無いから抜けたらエイリアスが使えないという現象に出くわしたので忘備録として残しておきます。

// ashでAppコンテナ内に入る
$ docker-compose exec app ash

// ルートディレクトリに移動
$ cd 

// .profileファイルをviコマンドで開く
$ vi .profile

# .profileファイル内に下記を追加
alias pu="clear && vendor/bin/phpunit"
alias pf="clear && vendor/bin/phpunit --filter"

// ファイルの読み込み直し
$ source .profile

// ドキュメントルートに移動
$ cd /work/

// エイリアスで設定したコマンドを実行
$ pu   ←ここでは実行できる

// 一旦コンテナを抜ける
$ exit

// ashでAppコンテナ内に再び入る
$ docker-compose exec app ash

// エイリアスで設定したコマンドを実行
$ pu   ←ここではエイリアスで設定したコマンドが実行できない
ash: pu: not found

原因として、コンテナ内に入った時はデフォルトでは非ログインシェル状態だそうです。
そのためユーザーを変更して上げる必要があるみたいです。

// ashでAppコンテナ内に入る
$ docker-compose exec app ash

// ashユーザーにスイッチ
$ ash -l

// エイリアスで設定したテストを走らせる
$ pu

間違ってたら優しくご指摘お願いします。

6
2
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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?