[過去ログ] Docker Part5 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
874(1): 2021/03/19(金)15:28 ID:OafZaxWN(1/15) AAS
そうじゃなくて
開発も本番もパッケージはホストにインストールするんだよ
で本番はコンテナにパッケージを読み取り専用でマウントすんの
全部固めたイメージなんてものは要らない
875(1): 2021/03/19(金)16:22 ID:R4CRH11B(1/18) AAS
>>871
> 俺らが本当に欲しかったものってdockerじゃなくてスマートなパッケージマネージャ(とリポジトリ)なんだよね
パッケージマネージャーだけだと
実行するときの分離ができないだろ
「俺らが」じゃなくて「お前が」欲しいものはパッケージマネージャーなので
Dockerでパッケージマネージャー相当のことがしたい
できないのは苦痛だなどと言わないように
お前の目的にあってないのよ
Dockerは開発者が自分で作ったアプリを
デプロイするためのツールだって何度も言ってるだろ
876: 2021/03/19(金)16:25 ID:edcYEDQK(4/6) AAS
それをやろうとしてるのはnixos-containerじゃね
コンテナ起動時にパッケージへのシンボリックリンクを動的につくるか、
PATHをパッケージの絶対パスで埋め尽くせばDockerでも行けそう
後はバイナリキャッシュのバイナリだけを利用するとか、実行時に必要なパッケージだけをダウンロードするモードがnixにないとか
その辺がなんとかなれば
本番で不要なビルド用パッケージを落としたりソースからビルドとかしたくないし
nix expressionの評価が遅いって問題もあるが
それはnix flakesで解決しそう
dockerTools.buildLayeredImage使えば
パッケージ毎にイメージレイヤーを作ってくれるので
省6
877(1): 2021/03/19(金)16:25 ID:R4CRH11B(2/18) AAS
>>874
なんでパッケージマネージャーが欲しいやつがDockerなんて使おうとするんだろ?w
例えばapacheのDockerイメージ、nginxのDockerイメージ
どちらもポート80で起動する
というDockerイメージを、同一のホストで複数起動する場合どうすればいいのか?
Dockerイメージを変更すること無く、待受ポート番号を変更するにはどうすればいいのか?
それができるように作られたのがDockerなんだが
ファイルを置くだけのパッケージマネージャーじゃこんな事はできない
実行時のプロセスの分離を行う仕組みが必要
878: 2021/03/19(金)16:30 ID:OafZaxWN(2/15) AAS
>>875
実行する時の分離はできるだろ
コンテナに読み取り専用でマウントするだけ
879(1): 2021/03/19(金)16:32 ID:OafZaxWN(3/15) AAS
>>877
nginxのパッケージを入れて2つの隔離されたnginxプロセスを起動するだけだろ
880: 2021/03/19(金)16:54 ID:edcYEDQK(5/6) AAS
独自のコンテナランタイムとか作らないってこと?
今使ってるコンテナのイメージレイヤーは削除出来たらだめって挙動をパッケージでやるのは
独自のコンテナランタイム作らずには難しくね
今コンテナで使ってるパッケージを削除してしまったり
逆に古いパッケージが消えないってなりそう
881: 2021/03/19(金)16:57 ID:R4CRH11B(3/18) AAS
>>879
> nginxのパッケージを入れて2つの隔離されたnginxプロセスを起動するだけだろ
パッケージを1つだけ入れて2つのnginxプロセスを起動したりしたいんだよ
それもnginxの設定を変更せずに
882: 2021/03/19(金)17:00 ID:R4CRH11B(4/18) AAS
Dockerとパッケージマネージャーは使う目的が全く違うんだから
パッケージマネージャーが欲しい人がDockerをパッケージマネージャーの代わりとして使って
「Dockerはパッケージマネージャーで代用できる!」なんて適当なことを言わないでくれ
それはお前がDockeをパッケージマネージャーという
間違った用途で使ってるだけだ
883: 2021/03/19(金)17:37 ID:OafZaxWN(4/15) AAS
作るとしたらこんな感じだろうな
デベロッパ
myapp:
name: MyApp
version: 2.0
packages:
- ruby == 3.0.0
- hoge.com/hoge-cli == 1.2
files:
- src: ./src
省16
884(1): 2021/03/19(金)17:40 ID:R4CRH11B(5/18) AAS
ただの設定ファイルの形式変えてるだけじゃん
イメージいらないって、イメージなくしてどうやって起動速度上げるのさ?
どうやって全く同じイメージだと保証できるのさ?
同じ設定ファイルから作ったとしても一年後にやって同じイメージが出来る保証はない
885: 2021/03/19(金)17:41 ID:OafZaxWN(5/15) AAS
済まない
↑のリポジトリのURLは適当に架空のURLを書いたつもりだったが存在するドメインだったので無視してくれ
886(1): 2021/03/19(金)17:41 ID:R4CRH11B(6/18) AAS
あとrubyしか書いてないけど、ディストリに含まれる
全てのライブラリのバージョンも書かないと駄目だろw
887: 2021/03/19(金)17:43 ID:OafZaxWN(6/15) AAS
>>884
ファイル形式を変えてるだけじゃない
パッケージを分離してる
イメージは必要ない
必要なのはパッケージ、メタデータだけ
888: 2021/03/19(金)17:44 ID:OafZaxWN(7/15) AAS
>>886
rubyに必要な依存はrubyパッケージのメタデータに書く
889(1): 2021/03/19(金)17:44 ID:R4CRH11B(7/18) AAS
多数の仮想マシンに同一のイメージを配布することは出来るが
多数の仮想マシンに設定ファイルから一からインストールするなんて時間かかるし
すべてのファイル(OSに含まれる全てのファイル)を、そのリポジトリとやらに
アップしてそれをダウンロードして使うってならそれがDockerのイメージの仕組みです
としか言いようがない
890(1): 2021/03/19(金)17:45 ID:R4CRH11B(8/18) AAS
メタデータから再インストールするのは
時間がかかるって言ってます。
完成済みのファイルをコピーしたほうがずっと速い
それがイメージ
891: 2021/03/19(金)17:46 ID:OafZaxWN(8/15) AAS
>>889
dockerとの違いはイメージに固めないこと
これによって同じパッケージを使うアプリでパッケージ共有できる
ディスク容量や通信時間を大幅に節約できる
892: 2021/03/19(金)17:47 ID:OafZaxWN(9/15) AAS
>>890
重複を避けて少量のファイルをpullしたほうが速い
imageだと同じパッケージを使ってても別のimageと認識されるから無駄が大きすぎる
893(1): 2021/03/19(金)17:47 ID:R4CRH11B(9/18) AAS
パッケージだけあったって、インストールの順番で
出来上がるものは違うだろうが
あとからnanoをインストールするのと
あとからvimをインストールするので
同じものが出来ると思うか?
上下前次1-新書関写板覧索設栞歴
あと 109 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s