Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Dockerfile for deployment #56

Merged
merged 4 commits into from
Jun 20, 2021

Conversation

KEINOS
Copy link
Member

@KEINOS KEINOS commented Jun 10, 2021

  • Dockerfile
    • ./bin ディレクトリ内のスクリプトと、最低限必要なコマンドだけの入った Dockerfile です。(Alpine ベース)
    • ビルド時にマルチステージ・ビルドでテストを実行し、最終的にミニマムなイメージを作成します。
  • docker-compose.test.yml
    • 将来的に Docker Hub からもイメージを pull できるように Automated build 用に docker-compose.test.yml も設置しています。
  • devcontainer.json
    • VSCode 用に Dockerfile の linter を追加

@KEINOS KEINOS force-pushed the feat-docker-for-production branch from 14c628a to 38351a2 Compare June 13, 2021 01:47
@KEINOS KEINOS force-pushed the feat-docker-for-production branch from bb3657e to 337a898 Compare June 16, 2021 06:35
@KEINOS KEINOS marked this pull request as ready for review June 17, 2021 12:58
@KEINOS
Copy link
Member Author

KEINOS commented Jun 17, 2021

Docker で使えるように Dockerfile を用意しました。
お手すきにレビューのほど、お願いいたします。

マージされたら docker pull でイメージを pull できるようにしたいと思います。

waiting_for_lgtm

@yoshi389111
Copy link
Collaborator

遅くなってすみません。

問題ないと思います。

LGTM

少し気になったのは、起動時に引数が少し煩雑だな、と思いました。仕方がないとはおもいますが。

  • ユーザIDをマッピングするのに -u $(id -u):root をつける(gid は root のままですが…)
    • ファイルを作るコマンドの場合には基本的に必要。archive/keygen などの場合は必須(パーミッション 600 でつくるので)
  • sshの秘密鍵をマッピングするため -v ~:/root をつける
    • 秘密鍵を使うコマンドは必須。keygenでも必須
  • カレントディレクトリをマウントしたいので -v $(pwd):/app をつける
    • 必要な場合のみ
  • テンポラリディレクトリをマウントするため -v /tmp:/tmp をつける
    • (毎回イメージを捨てるなら関係ないかもしれないですが)

使い方をまとめる必要がありそうですね。

@KEINOS
Copy link
Member Author

KEINOS commented Jun 20, 2021

レビューありがとうございます

起動時に引数が少し煩雑

そうなんですよー。Docker と QiiCipher の動きに、いささか詳しい人でないと使えない感は否めないです。特に、この状態だとコンテナに tty して内部で操作しないと使えないと思います。マウントも難しい。

とりあえずマージして、まずは Docker Hub からイメージが pull できる、もしくは URL 指定でビルドできるようにしたいと思います。

次回予告 (プロ野球中継延長の場合に時間押しでの PR になる可能性がございます)

次の PR では、シェル・スクリプトの内部で Docker イメージを pull するか docker build <URL> して、必要なディレクトリをマウントしつつコンテナを起動する qiic.sh を作りたいと思います。

これにより Docker と POSIX 互換のシェルがあれば qiic.sh をパスにコピペってくるだけで qiic encqiic archive qiic keygen などができるような感じ。

  • 参考: docker-compose すらもコンテナで実行するスクリプト

ユーザIDをマッピングする

おお。確かに必要で重要だ!!失念していましたでごザル!あざっす!

@KEINOS KEINOS merged commit 916c756 into Qithub-BOT:master Jun 20, 2021
@KEINOS KEINOS deleted the feat-docker-for-production branch June 20, 2021 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants