node のプロジェクトを扱っていると、バージョンの混在やらで環境が汚れがちなので、コンテナに押し込むようにしてるのですが、 頻繁に使わない分いろいろ忘れがちなので、いつも開発環境で使っている設定やらを備忘録として残します。
Dockerfile の準備
よくある Dockerfile を書きます。 node の Latest バージョンを取得して、コンテナの /home/app を作業用ディレクトリとして設定 3000 ポートをリッスンします
FROM node:latest WORKDIR /home/app USER node ENV PORT 3000 EXPOSE 3000 ENTRYPOINT /bin/bash
Docker-compose.yml の準備
localhost の 8080 をコンテナの 3000 ポートに転送します
また、初回起動時のみ npm install を実行し、そのあとにアプリケーションを立ち上げたいので、それを実行するための init.sh と npm run dev
を command に仕込みます。
version: "3" services: node_dev_env: build: . entrypoint: - sh command: - -c - sh init.sh; npm run dev container_name: node-docker ports: - 8080:3000 volumes: - ./:/home/app
init.sh
check というファイルが存在しない場合だけ、npm install
を実行し、check を生成します
#!/bin/bash if [ -e "./check" ]; then echo "FILE is exit" else npm install touch check fi
実行
docker-compose up -d
コンテナに入りたい場合は、この後に
docker container exec -it {コンテナ名} bash
最後に
完全に自分用の備忘録なのでご参考までに