uso

雑記いろいろ
★書いてある内容に保証は一切ありません。
 ご自身で判断をしてください。

docker

2020-03-28 17:49:22 | 日記
敷居が高いけど、勉強してみた。
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をインストールすると出るらしい・・