docker-composeの書き方
docker-compose.yml
version: '3'
services:
web:
## dockerimageファイルを指定するか、自分で作成したDockerfileを指定する。
## Dockerfileが同一ディレクトリに存在する場合は image: {imageName}
build: {imageFileName}
ports:
- '3000:3000'
volumes:
- '.:/product-file'
tty: true
stdin_open: true
tty:true → -t
stdin_open: true → -i
両方指定することで -itと同じ状態になる
volumes
コンテナに共有するディレクトリを指定する。
コンテナ内に/product-fileを作成し、docker-compose.ymlより下の階層のファイルをそのままコンテナに反映する。
ファイル内容を変更しても、リアルタイムで反映される
実行するコマンド
docker-compose build
docker-compose up
docker-compose ps
docker-compose exec {docker-compose.ymlで指定したservice名(今回はweb)}
## volumeするディレクトリを間違えたなど、一度作ったコンテナを全削除したい場合
docker-compose down (stopしてrmする)
ここまでくれば対象のコンテナに指定したファイルがマウントされている状態になる。
docker-compose exec {アプリ名} bash で中身を確認すると、そのファイルが存在している.
ファイルはvolumeされているので同期されるが、一度サーバーを立ち上げるなどをすると、htmlなどが動的に生成されるようには行かないので、改めて立ち上げ直す必要がある。
CICD環境を構築することで、gitにpushした時に改めて更新してくれるようにできるハズ。