敷居が高いけど、勉強してみた。
dockerというよりdocker-composeがメイン。楽だし。
ここを参考にvueの環境を作ってみた際のメモ。
https://qiita.com/rh_taro/items/ca08b930f704275286a4
------vue環境作る
===Dockerfile
FROM node:13.12.0-alpine3.10
WORKDIR /usr/src/app
RUN apk update && \
npm install --no-optional -g @vue/cli
★バージョンはDocker Hubで探す
https://hub.docker.com/_/node/
alpineの最新にしてみた(軽いらしい)
★--no-optionalを入れないとWARNがいっぱい出る、npm×Linuxの問題?
↓は出てしまうが、少ないしOKとしておく・・・、大量には出ない
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/@vue/cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.12: wanted {"os":"darwin","arch":"any"} (current:{"os":"linux","arch":"x64"})
===docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- 9050:8080
privileged: true
volumes:
- ./app:/usr/src/app
tty: true
stdin_open: true
command: /bin/sh
ビルド
docker-compose build
実行
docker-compose up -a
作ったコンテナに入ってsh
docker-compose exec app sh
vue cliでプロジェクト作る
vue create .
→質問は適時必要なものを答える
時間がかかるがappフォルダに色々入るので、
yarn serve
ホストに戻って
http://localhost:9050
→vueの画面出てくると成功
------途中でわからなくて調べたこと色々
起動方法について(dockerコマンドはまた別モノ)
http://docs.docker.jp/compose/faq.html
docker-compose up
docker-compose run -it
docker-compose start
→up ・ run ・ start の違いは何ですか?
一般的には docker-compose upを使う。
docker-compose run コマンドは「ワンオフ」(one-off;1つだけ、偶発的) または「アドホック」(adhoc;臨時)なタスクの実行に使います。
docker-compose start コマンドは既に作成済みのコンテナの再起動には便利です。しかし止まっているコンテナを起動するだけであり、新しいコンテナは作成しません。
コマンド基本色々
http://docs.docker.jp/get-started/part2.html
チートシート
docker build -t friendlyname . # このディレクトリ内にある DockerCile でイメージ作成
docker run -p 4000:80 friendlyname # "friendlyname" の実行にあたり、ポート 4000 を 80 に割り当て
docker run -d -p 4000:80 friendlyname # 同じですが、デタッチド・モード
docker container ls # 全ての実行中コンテナを表示
docker container ls -a # 停止中も含めて全てのコンテナを表示
docker container stop <hash> # 指定したコンテナを丁寧に停止
docker container kill <hash> # 指定したコンテナを強制シャットダウン
docker container rm <hash> # マシン上から指定したコンテナを削除
docker container rm $(docker container ls -a -q) # 全てのコンテナを削除
docker image ls -a # マシン上の全てのイメージを表示
docker image rm <image id> # マシン上の特定のイメージを削除
docker image rm $(docker image ls -a -q) # マシン上の全てのイメージを削除
docker login # CLI セッションで Docker の認証を行いログイン
docker tag <image> username/repository:tag # レジストリにアップロードする <image> にタグ付け
docker push username/repository:tag # タグ付けしたイメージを送信
docker run username/repository:tag # レジストリにあるイメージを実行
未使用イメージ一括削除
docker rmi `docker images -q`
npmで大量のwarnが出る
https://docs.npmjs.com/cli/install
→解決できず、とりあえず--no-optional入れて逃した
→少し調べたら、同じようなことを調べているサイトがあった
https://haiju.hatenablog.com/entry/2018/04/23/134809
MacOS以外にnpmをインストールすると出るらしい・・
dockerというよりdocker-composeがメイン。楽だし。
ここを参考にvueの環境を作ってみた際のメモ。
https://qiita.com/rh_taro/items/ca08b930f704275286a4
------vue環境作る
===Dockerfile
FROM node:13.12.0-alpine3.10
WORKDIR /usr/src/app
RUN apk update && \
npm install --no-optional -g @vue/cli
★バージョンはDocker Hubで探す
https://hub.docker.com/_/node/
alpineの最新にしてみた(軽いらしい)
★--no-optionalを入れないとWARNがいっぱい出る、npm×Linuxの問題?
↓は出てしまうが、少ないしOKとしておく・・・、大量には出ない
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/@vue/cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.12: wanted {"os":"darwin","arch":"any"} (current:{"os":"linux","arch":"x64"})
===docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- 9050:8080
privileged: true
volumes:
- ./app:/usr/src/app
tty: true
stdin_open: true
command: /bin/sh
ビルド
docker-compose build
実行
docker-compose up -a
作ったコンテナに入ってsh
docker-compose exec app sh
vue cliでプロジェクト作る
vue create .
→質問は適時必要なものを答える
時間がかかるがappフォルダに色々入るので、
yarn serve
ホストに戻って
http://localhost:9050
→vueの画面出てくると成功
------途中でわからなくて調べたこと色々
起動方法について(dockerコマンドはまた別モノ)
http://docs.docker.jp/compose/faq.html
docker-compose up
docker-compose run -it
docker-compose start
→up ・ run ・ start の違いは何ですか?
一般的には docker-compose upを使う。
docker-compose run コマンドは「ワンオフ」(one-off;1つだけ、偶発的) または「アドホック」(adhoc;臨時)なタスクの実行に使います。
docker-compose start コマンドは既に作成済みのコンテナの再起動には便利です。しかし止まっているコンテナを起動するだけであり、新しいコンテナは作成しません。
コマンド基本色々
http://docs.docker.jp/get-started/part2.html
チートシート
docker build -t friendlyname . # このディレクトリ内にある DockerCile でイメージ作成
docker run -p 4000:80 friendlyname # "friendlyname" の実行にあたり、ポート 4000 を 80 に割り当て
docker run -d -p 4000:80 friendlyname # 同じですが、デタッチド・モード
docker container ls # 全ての実行中コンテナを表示
docker container ls -a # 停止中も含めて全てのコンテナを表示
docker container stop <hash> # 指定したコンテナを丁寧に停止
docker container kill <hash> # 指定したコンテナを強制シャットダウン
docker container rm <hash> # マシン上から指定したコンテナを削除
docker container rm $(docker container ls -a -q) # 全てのコンテナを削除
docker image ls -a # マシン上の全てのイメージを表示
docker image rm <image id> # マシン上の特定のイメージを削除
docker image rm $(docker image ls -a -q) # マシン上の全てのイメージを削除
docker login # CLI セッションで Docker の認証を行いログイン
docker tag <image> username/repository:tag # レジストリにアップロードする <image> にタグ付け
docker push username/repository:tag # タグ付けしたイメージを送信
docker run username/repository:tag # レジストリにあるイメージを実行
未使用イメージ一括削除
docker rmi `docker images -q`
npmで大量のwarnが出る
https://docs.npmjs.com/cli/install
→解決できず、とりあえず--no-optional入れて逃した
→少し調べたら、同じようなことを調べているサイトがあった
https://haiju.hatenablog.com/entry/2018/04/23/134809
MacOS以外にnpmをインストールすると出るらしい・・