macOS から Linux に引っ越してきてしばらく経つわけですが、バックエンドの開発環境用の docker-compose.yml
をわけたいのです。理由は
envs | reasons |
macOS(amd64) | docker-sync を使って volume を mount する |
Linux | docker-sync 不要 |
だからです。なので今まで通り macOS で開発する人はそのままで、 Linux で開発する人は別に docker-compose-linux.yml
を用意してあげて、 README.md
にも使い方を追記しておけばいいのではないか?と思いました。
docker-compose.yml (macOS用)
version: "3"
services:
php:
container_name: "my_api"
:
volumes:
- "sync-volume:/var/www/html"
:
volumes:
sync-volume:
external: true
docker-compose-linux.yml
version: "3"
services:
php:
container_name: "my_api"
:
volumes:
- - "sync-volume:/var/www/html"
+ - "./:/var/www/html"
:
- volumes:
- sync-volume:
- external: true
README.md
以下の使い方を説明する。
環境変数設定
# macOS users
export DOCKER_COMPOSE_YML="docker-compose.yml"
# Linux users
export DOCKER_COMPOSE_YML="docker-compose-linux.yml"
docker-compose up
を実行する際
- docker-compose -f $DOCKER_COMPOSE_YML up -d
これでよかろう?
番外編
VSCode の PHP とかのプラグインの設定で PHP の path が必要で PHP をインストールしていないから container の PHP に path を通したくなった。以下でできた。
/usr/local/bin/php
PHP インストールしていないので新規作成(のはず
my_api
の部分は docker-compose.yml
の container_name
と同じにしてください。
path=$(printf '%s\n' "${PWD##*/}")
command="docker exec my_api php "$@""
echo "Running php on docker my_api"
$command
実行権限を付与する
sudo chmod +x /usr/local/bin/php
各種 PHP プラグインの path を設定する
以下で設定する。
/usr/local/bin/php
他に PHP インストールしてて、違う path を使いたい場合は /opt/.../php
とかを使えばいいんじゃないかと思います。
こんな感じで本日は終わり。そんじゃまた。