[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/29 04:54 / Filesize : 369 KB / Number-of Response : 1060
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Docker Part2



1 名前:login:Penguin mailto:sageteoff [2017/09/28(木) 14:00:45.18 ID:/4TtIqGt.net]
LXCを使った軽量仮想環境。
これからの動向が気になるところ。
情報共有しましょう。

www.docker.io/

前スレ
Docker
mao.2ch.net/test/read.cgi/linux/1374861492/

113 名前:塩水 mailto:sage [2018/03/11(日) 03:33:10.76 ID:hSBnN7Ry.net]
今度は長文をPCから書き込んだらsage忘れた
2ch書き込みのブランクありすぎて色々ひどい。。

114 名前:塩水 mailto:sage [2018/03/11(日) 03:47:31.86 ID:hSBnN7Ry.net]
>>106
私も冪等性なんてあてにするものではないと思ってて、
Ansibleに限らず、そのほかのツールも検証してないものは信頼しないというのが私の基本スタンスです。
(特に、かなり昔に作った構築系スクリプトはそのまま実行して一回で動くとは思ってません。)

シェルスクリプトは構築コマンドそのまま列挙すればよいので便利なのですが、
例えばCentOSのOS基本設定入れてRuby入れてApache入れてアプリ入れて、
みたいな構築の場合、Role単位で過程を完全に分離できるので、管理がすごく楽なんです。

例えば構築が失敗したとき、シェルスクリプト場合
何でコケたのか、どこでコケたのか、というのを探すところから始める必要がありますが
Ansibleだとコケた場所とコケた原因のコマンドが一目瞭然なのでとてもメンテしやすいのです。

115 名前:login:Penguin mailto:sage [2018/03/11(日) 04:16:58.61 ID:FdJN57de.net]
あちこちで煽ってるけどようやくまともな意見を返す人が見つかったな

ふぉーん。ってことはシェルスクリプトでもどこで失敗したか
ピンポイントでわかれば問題ないってことじゃねーか。
あとは書き方が統一されていればいい
それなら解決可能な問題だな。っていうか俺の手元ではほぼ解決済みだ

> Role単位で過程を完全に分離できるので、管理がすごく楽なんです。
> Ansibleだとコケた場所とコケた原因のコマンドが一目瞭然なのでとてもメンテしやすいのです。
それもほぼ解決済みだ

シェルスクリプトで解決可能なたったそれだけの問題のために
Ansibleみたいな内部で何が行われているかわからない
重量系なブラックボックスツールをありがたがって使ってんのか
なんであれ(Ansibleとか)が無駄に重いソフトだってみんな気づかないんだろうか

> 2ch書き込みのブランクありすぎて色々ひどい。。
一体いつからここが2ちゃんねるだと錯覚していた?

116 名前:login:Penguin mailto:sage [2018/03/11(日) 04:26:48.50 ID:FdJN57de.net]
Ansibleがブラックボックスツールということの
意味がわからない人がいるかもしれないから
軽く説明しておいてやろう

まずお前らは環境構築をしているよな?それが仕事だ
その仕事をしている最中に、Ansible関連でバグとか
モジュールが対応してなくてうまく動かない自体が発生した。

それらをお前らすぐになおせるの?
pythonを知っていたとしてもまず無理だろ?
重量級のAnsibleをブラックボックスで使ってるからな

でも本来のお前ら

117 名前:フ仕事である環境構築は
手作業やシェルスクリプトですぐに解決できるだろ?
Ansibleの範囲でうまくできてりゃいいさ、だが
それができない場合、大きなボトルネックになってんだろ
[]
[ここ壊れてます]

118 名前:塩水 mailto:sage [2018/03/11(日) 04:40:50.71 ID:hSBnN7Ry.net]
なんかアドレスが5chになってる。いつの間に。。

>>110
言ってしまうと、自分のスクリプト力もあまり信頼してなくて、
今書いた複雑なスクリプトを一年後の自分が読めるとは思ってないのです。

ベテランの人が自分で方針を決めて数年後でもメンテできるように書いていれば
その人は問題なく使えると思うのですが、他の人はそれを読めるかどうかというところですね。

Ansibleのベストプラクティスに従っていれば、そんなベテランの腕がなくても
仕組みで自然とそのようなメンテがしやすい形にはなるのです。

ただ、ベストプラクティスもそのままだと実用としてどうなのというケースも多いので
現場に合わせてアレンジする作業は必須だと思いますが。
(教科書そのままでは現実では役にたたない、とよく言われるアレみたいな感じです)

Ansibleそのものの挙動はブラックボックスなところもあるかもしれませんが、
品質の担保はServerSpecのテストでやってます。
何か問題があったらServerSpecのテストを足せば良かったりします。
手順書に確認手順を追加するよりテスト書いてgitで管理して必要に応じて実行する方が簡単で確実かなと思ってます。

テストや確認事項を手順書に追加するのは手順書のメンテナンスも確認作業も面倒ですが
テストなら足して実行すればよいだけなので、細かすぎるような確認作業も気兼ねなくガンガン追加できます。

119 名前:塩水 mailto:sage [2018/03/11(日) 04:55:20.38 ID:hSBnN7Ry.net]
多少はやったことありますが、AnsibleのモジュールそのものをPython書いて修正するというのは敷居がけっこう高いですね。。
確かに、廃止されたりオプションが変わったり、変な挙動のモジュールもあります。
解決策はそのモジュールが使えてるAnsibleのバージョンを固定するか
最悪、shellやcommandモジュールでLinuxコマンドべた書きするかでしょうか。

ただ、shell, commandモジュールを使うと冪等性が担保できないので
非推奨なのですが、そもそも私は冪等性というものを信用してなかったりするので
自分の場合は特に問題なかったり。

Ansibleが用意しているモジュールがあるのにshellやcommandでやろうとすると
こっちのモジュール使えという警告が出て煩わしかったりします。
使えるモジュールは使うとシンプルにかけたり良しなに処理してくれたりと確かに便利ではあるのですが
さっき書いたように廃止や挙動が変更されるリスクもあります。

そこでdockerコンテナを使ったPlkaybookの高速検証が活きてくるという。

120 名前:塩水 mailto:sage [2018/03/11(日) 05:13:32.25 ID:hSBnN7Ry.net]
さらさらっと書いてますが、このようなdocker,ansible,Serverspecの環境を作るのはそれなりに大変だと思うので、
もしやるならばこの辺に詳しいインフラエンジニアに任せた方が良いかも。

121 名前:login:Penguin mailto:sage [2018/03/11(日) 11:20:29.98 ID:FdJN57de.net]
>>112
> 今書いた複雑なスクリプトを一年後の自分が読めるとは思ってないのです。
環境構築ごときでなんで複雑になるのかそこが不思議。
まず一つだけアドバイスするなら、設定はファイルの項目ごとに変更するのではなく、
設定ファイルをまるごとcopyすること。これで冪等性も担保される。

環境構築なんてファイルおいて数個のコマンド実行して大抵はこれだけで
終わるはずなんだが、なんで複雑になってるのか知りたいよw

冪等性を考えると前の状態を考慮する必要がでてくるので条件分岐なんかが出てくるが
Dockerだと最初から作り直しになるので関係ない
あんな大量のモジュールができてしまったのは、冪等性を考慮したことが根本原因かね?

> Ansibleのベストプラクティスに従っていれば、そんなベテランの腕がなくても
> 仕組みで自然とそのようなメンテがしやすい形にはなるのです。
細かいファイルに分かれていて、notifyとはhandlersとか使っていて、これどうなってるんだ?って頭を抱えたことが有るんだがw
単純にメンテしやすい形になればいいのかねぇ。詳しくは言えないがそれなら俺の手元では解決済みなんだ。

> Ansibleそのものの挙動はブラックボックスなところもあるかもしれませんが、
> 品質の担保はServerSpecのテストでやってます。
テストのためだけにRubyをサーバーに入れなきゃいけないってのもナンセンスだよなw
入れない方法もあるんだっけ?

> 何か問題があったらServerSpecのテストを足せば良かったりします。
> 手順書に確認手順を追加するよりテスト書いてgitで管理して必要に応じて実行する方が簡単で確実かなと思ってます。
俺は一言も手順書なんて言ってないんだよね。テストもシェルスクリプトでやればいいでしょ?当然gitで管理できる。

あとServerSpecでも同じくブラックボックス問題がある。ServerSpecでは一体何を調べてるんだって話だよ
例えばpackageでパッケージがインストールされているか調べられるが、パッケージの管理方法はディストリで違うはずだ
packageはAlpineのapkでも使えるのか?という質問に自信をもって答えられるのか?すぐにソース読みとけるのか?
(まあそこはコマンドが実行できればOKとするのが、やるべきテストだと思うけどさ)



122 名前:login:Penguin mailto:sage [2018/03/11(日) 11:22:42.29 ID:FdJN57de.net]
ServerSpec実行してOKがでればOKと信用すりゃいいんだろうけどさ、何をテストしているのかさっぱりわからん。
ServerSpec(というかrspec)というフレームワークはブラックボックスで良いんだが
肝心のテスト内容(matcher)で何をやってるのかは把握してなきゃだめだろ?

>>113
> ただ、shell, commandモジュールを使うと冪等性が担保できないので
Dockerや最近のImmutable Infrastructureではサーバ作ったら変えないので
ありがたいことに冪等性は不要になった。実行前は必ずクリーンな状態なのでね。

俺も冪等性は信頼してない。特にAnsibleとかブラックボックスなので。
ただしここではいわないが、冪等性に変わるアイデアを持ってる

> さらさらっと書いてますが、このようなdocker,ansible,Serverspecの環境を作るのはそれなりに大変だと思うので、
Dockerはともなく、ansible とか Serverspec だから大変なんだよ。
Serverspecとか今度はRubyいるだろ?


参考になった。まあ気にすんなよ。あんたを煽ってるわけじゃなく
ちょうどansible使おうとしてるやつがいたから、なんでか聞きたかっただけだ。
Ansibleとかほんとクソだって思ってるので

最初の質問にもう一度答えると
> dockerfile使わずにAnsibleでコンテナ構築してる人居ます?
つかわん。dockerなら冪等性いらないし、1コンテナで動かすものは極力シンプルにするので
構築内容は短くなる。逆にAnsibleを動かすための部分のほうが長くなる

123 名前:login:Penguin mailto:sage [2018/03/11(日) 11:30:56.88 ID:FdJN57de.net]
>>114
> もしやるならばこの辺に詳しいインフラエンジニアに任せた方が良いかも。
インフラエンジニアじゃないのか?俺も違うけどなw

インフラエンジニアじゃないけど、サーバー構築やらないわけじゃなく
まあやったりする。それぐらいはできる。

問題は、パッケージインストールした。設定ファイルも書いた。こんな感じでいいだろう。
で、自動化? まあやったほうが良いね。今やったことを自動化するだけだろ?


Ansible? YAMLで書くのか。
インストールしたパッケージを使うモジュールはどれ?
設定ファイルに書いたことに相当する項目はどれ?
ないんだが?新しい機能だから対応してねーのか?
結局commandでシェルスクリプト書くしかねーじゃねーか

みたいなな。

インフラエンジニアってなんであんなクソなもの平気で使えるの?

124 名前:login:Penguin mailto:sage [2018/03/11(日) 11:48:05.06 ID:JbaTrnc+.net]
オンプレでウォーターフォール、一度作ったマシンを後生大事に使い続ける、
そんなスタイルならDockerすら不要かと

125 名前:塩水 mailto:sage [2018/03/11(日) 15:33:16.62 ID:hSBnN7Ry.net]
> 環境構築ごときでなんで複雑になるのかそこが不思議。
社内のVMwareで作ったイメージを直接客先に入れられるならもっと簡単に作れるんですけどね。。
オンプレ上で直接構築する場合、内部やDMZなど環境毎にproxyやDNS、ntpやファイヤーウォールの設定が違ってたりするのです。
あと、WebサーバでIPアドレスだけ変えて後は全部一緒の設定にしたい場合は
Webサーバ分だけ設定ファイル作るんじゃなくて、テンプレート作ってIPアドレスだけ動的に変えて配布するとか。
便利です。

> あんな大量のモジュールができてしまったのは、冪等性を考慮したことが根本原因かね?
それも原因の一つかもしれないですが、基本は便利そうだからじゃないですかね?
私はRedHatの人ではないのでなんとも答えられませんが
「何でLinuxにはあんな大量にコマンドがあるんですか?」みたいな質問かなーと。

> 細かいファイルに分かれていて、notifyとはhandlersとか使っていて、これどうなってるんだ?って頭を抱えたことが有るんだがw
そうですね。サービスが再起動されるのが状態が変更された場合という事ですけど
何をもってサービスが変更されたとするかというのがわかりにくいかもですね。
私はこれ積極的には使ってなくて、serviceモジュールで明示的にサービス再起動してます。
基本的に冪等性は考えないスタンスの一言なのですが、使わない理由をあえて考えると
構築時はいくらどのタイミングでサービスを再起動しても本番に影響は無いのと、
稼働中のサーバのサービスを再起動する場合は明示的に確実に特定のタイミングで一回だけ再起動させたいからでしょうか。

126 名前:塩水 mailto:sage [2018/03/11(日) 15:34:04.20 ID:hSBnN7Ry.net]
> テストのためだけにRubyをサーバーに入れなきゃいけないってのもナンセンスだよなw
> 入れない方法もあるんだっけ?
Serverspecは私の知ってる限りのやり方ではRuby要りますね。gemですし。
サービスと関係なくある程度裁量で触れるステージング的なサーバがあれば
客に許可をもらってそこに入れるとか。。

> テストもシェルスクリプトでやればいいでしょ?当然gitで管理できる。
シェルスクリプトでテストが書けるのであれば良いと思いますが、
例えばリターンコードを確認して成功と失敗を判断して、、みたいなスクリプトを書くとすると
構築系スクリプト以上に大変な気がします。。

> ServerSpecでは一体何を調べてるんだって話だよ
何を調べれば十分かをこちらで定めて、それを満たしていることを確認するというスタンスにすれば良いと思うのです。
例えば「Rubyがインストールされていることを確認する」の場合packageだけで良しとするか、
commandでインストールしたコマンド実行後にあるべき出力結果が出てるかまで確認するかとか。
やろうと思えば手で実行できる範囲のテストはいくらでも追加できるので。

AnsibleやServerspecそのものがどうなってるかではなくて、自分が構築したサービスがちゃんと機能しているかを見ます。
こういう着眼点にすれば、将来もしAnsibleやServerspec以外の便利なソフトができても移行の判断がしやすかったりします。

127 名前:login:Penguin mailto:sage [2018/03/11(日) 15:53:28.62 ID:FdJN57de.net]
> オンプレ上で直接構築する場合、内部やDMZなど環境毎にproxyやDNS、ntpやファイヤーウォールの設定が違ってたりするのです。
> あと、WebサーバでIPアドレスだけ変えて後は全部一緒の設定にしたい場合は
> Webサーバ分だけ設定ファイル作るんじゃなくて、テンプレート作ってIPアドレスだけ動的に変えて配布するとか。
> 便利です。

それはAnsibleじゃないとできないことではないからなぁ


> 例えばリターンコードを確認して成功と失敗を判断して、、みたいなスクリプトを書くとすると
> 構築系スクリプト以上に大変な気がします。。

set -e
exists_file() {
 [ -f "$1" ]
}

check() {
 exists_file /var/file1
 package_installed mysql
 some_check
}

リターンコードの確認なんていらない。set -eしてるからリターンコードが0以外だとそこでストップする
(どこでストップするかがわかるようにしたいなら、単に関数の中でメッセージを出せばいい)
あとはこんな感じでいろいろヘルパー関数を作っていけばいいだけだと思うんだが?
ヘルパー関数は再利用できるから実質check() の中身を書き連ねるだけ。

128 名前:塩水 mailto:sage [2018/03/11(日) 16:11:14.24 ID:hSBnN7Ry.net]
>>117
>インフラエンジニアじゃないのか?俺も違うけどなw
元インフラエンジニアで今の職業は百姓です。田舎で野菜作ってます。

最初はshellやcommandで書いて、使えるモジュールがわかったらあとで修正するという方法もありかなと。
まあ、だいたいそのままで特に問題ないので放置されるのがデフォルトですが。

自動化のところまでは色々できたりするんですけど、
それを他の人に引き継ぐというのがものすごく難しいんですよね。。

k8sも挑戦して、環境構築できるPlaybook作ったりしたのですが
人に引き継ぐという事が難しくて頓挫しました。
自分で管理することはできても人に引き継ぐとなるとAnsibleやServerspecの比じゃなくくらいしんどかったので
k8s環境ぶっ壊してdocker-composeに戻しました。
(そもそも社内の開発環境にk8sは大げさすぎたということもあります)

> Ansible? YAMLで書くのか。
例えばChefの場合はRubyの知識が必要ですがYAMLは言えば設定ファイルを書くような感覚なので
インフラエンジニアにとっても比較的とっつきやすいかなと思ってます。
AnsibleでPythonを意識するような場合、複雑にやりすぎているケースがほとんどです。
Pythonの制約からなのか、変なところにカンマ入れないと動かないとかあったりしますが。
(インベントリファイルじゃなく直接ホストを一つだけ指定する場合など)

> インフラエンジニアってなんであんなクソなもの平気で使えるの?
Ansibleは自然とメンテナンスしやすい構造になるような仕組みになっているのが便利だからじゃないでしょうか。
学習コストと既存のスキルセットでできることを比較して学習した方がトータルで

129 名前:率的になると判断したから使うというか。
逆に言うと既存のスキルセットで十分なことができてしまっていると学習コストを払うというほうに舵を切りにくかったりするかもですね。

私はAnsible、dockerは流行ってるから採用したのではなくて、
ある程度プライベートで遊んで便利そうだったから職場にも持ち込んだという流れでした。
[]
[ここ壊れてます]

130 名前:login:Penguin mailto:sage [2018/03/11(日) 16:12:01.95 ID:FdJN57de.net]
>>120
> > ServerSpecでは一体何を調べてるんだって話だよ
> 何を調べれば十分かをこちらで定めて、それを満たしていることを確認するというスタンスにすれば良いと思うのです。
> 例えば「Rubyがインストールされていることを確認する」の場合packageだけで良しとするか、
> commandでインストールしたコマンド実行後にあるべき出力結果が出てるかまで確認するかとか。
> やろうと思えば手で実行できる範囲のテストはいくらでも追加できるので。

そいう話じゃなくて

describe package('mysql') do
 it { should be_installed }
end

とかやってOKになった、インストールしているらしいことはわかった。

だがこのコードが何を根拠にパッケージがインストールされていると判断したのか?ってことだよ
dpkg -l の結果から判断しているだけなのか、それともパッケージに含まれるファイルが
既定の場所に有ることを確認しているのか、パーミッションまでチェックしているのか
それがわからんってことだよ。

もちろんソースコード見ればわかるだろうけど、Rubyの知識が要求される上に
こういうのって過度に汎用化されていて簡単に読み解けるとは思えないんだが
特に言語がDSLそのものではなく、DSLを作りやすいだけの言語だと、
DSLを作るために通常のプログラミングには用いられない
メタプログラミング的なコードが多用される傾向にある

131 名前:login:Penguin mailto:sage [2018/03/11(日) 16:38:27.85 ID:FdJN57de.net]
>>122
k8sはクラウドで数台〜十数台以上のマシンが常時起動していて
何もしてないのに起動してるのはもったいない。かと言って事情があって落とすことも出来ない。
ってときにそれらの余剰CPUリソースをなにかに使うことは出来ないか?って時に
使うもんだと思うぞ。あと同じサーバーを複数起動させるという前提があってこそ使える

(コスト節約のために)サーバーをオートスケールさせるのはクラウドだけなら
比較的簡単なんだが、その中に更にk8sが入り込むとk8s自体にもオートスケールがあって、
まるでクラウドの中にクラウドが有るような感じで複雑さが増し、
k8sでPod(コンテナ)をオートスケールさせて、サーバーリソースが足りなくなったら
今度は仮想マシンをオートスケールさせるとかなって安定稼働させられる自信がない。

普通に開発環境はdocker-composeがいいよ

> 学習コストと既存のスキルセットでできることを比較して学習した方がトータルで効率的になると判断したから使うというか。
俺からするとAnsibleはChefよりはましだが、それでも学習コストが高くて、(Ansible学習前の)インフラエンジニアが
持っているであろう既存のスキルセットの応用が難しく、Ansibleを覚えてしまったとしても
なおAnsibleモジュールと格闘し続ける、効率的にならない道具だと思ってる。

まあ一言で言うと、もっといい方法が有るって話だ。これ以上はここでは言えないけどw



132 名前:塩水 mailto:sage [2018/03/11(日) 16:50:49.20 ID:hSBnN7Ry.net]
>> 122
今のmysqlがどんなpathにあって権限がどうなっているのかは知らないので
仮の設定確認ですが

describe package('mysql') do
 it { should be_installed }
end

に続けて

describe file('/user/bin/mysqld') do
it { should exist }
it { should be_mode 770 }
it { should be_owned_by 'mysql' }
end

と書けばファイルの存在や権限、オーナーが確認できます。
さらにグループも確認したい場合はbe_grouped_intoを追加するなどで
いくらでも細かなチェックは追加できるかなと思います。

確かにAnsibleと比べてServerspecはRuby色が強くて
とっつきにくいかもしれませんが、そういう書き方を覚えてしまえばあとは慣れるかなぁと。

そこまでの学習コストは確かにそこそこあるので、
Rubyとシェルスクリプトと、ちょっとPythonができて
システムを俯瞰して見ることができるインフラエンジニアが居た方がいいかなーとは思います。。

133 名前:login:Penguin mailto:sage [2018/03/11(日) 16:57:53.92 ID:FdJN57de.net]
> と書けばファイルの存在や権限、オーナーが確認できます。
それはただ単にメソッド用意されてるからだよねーとしか思えないんだよね

シェルスクリプトだってメソッドあれば
例えばこれみたいに書けるでしょ?

describe file '/user/bin/mysqld \
 -- should_exist \
 -- should be_mode 770 \
 -- should be_owned_by 'mysql' \
end

134 名前:login:Penguin mailto:sage [2018/03/11(日) 16:59:24.31 ID:FdJN57de.net]
なんか中途半端になったなw



135 名前:describe file '/user/bin/mysqld \
 --should_exist \
 --should_be_mode 770 \
 --should_be_owned_by 'mysql' \
end
[]
[ここ壊れてます]

136 名前:塩水 mailto:sage [2018/03/11(日) 19:29:40.88 ID:hSBnN7Ry.net]
k8sはよっぽど仮想サーバに余剰があるか、もしくはGoogleやFacebookみたいに仮想化ソフトそのものがリソースの無駄と言い切って
物理サーバとコンテナだけでやるというクラスになると意義があるのかなぁとか思ったり。

開発や検証ではコンテナをガンガン使いますが、本番にコンテナ使うというのはどうもまだ怖いですね。。
壊れたら立て直せばよいWebサーバならまだ、、とは思いますがDBにコンテナ使うという事例みたときは
なかなかチャレンジングな事してるなと思いました。。

ただでさえコンテナは障害が発生したときにコンテナ側が悪いのかサーバ側が悪いのかの切り分けが
難しいのに、そこにさらにk8sが絡んでくるとなると。。

> シェルスクリプトだってメソッドあれば
確かにメソッドを自前で用意すればできると思います。
ただ、シェルスクリプトはちょっと記述を間違ったりすると事故になる可能性があるので
テストを流す前のベテランのレビューは必須だと思うんです。

Serverspecは基本的にどんな操作もサーバーの状態は変わらない(はず)なので
ベテランのレビューがなくてもとりあえず流しとく的に実行はしやすいかなと。
(私が今まで使った限りでは変な実行してサーバが壊れた、ということは無いです。
Ctrl+Cでキャンセルしてターミナルの表示がおかしくなるということはままありますが。)

137 名前:塩水 mailto:sage [2018/03/11(日) 19:43:24.47 ID:hSBnN7Ry.net]
こういう作業をAnsibleやServerspecでやろうとすると
コマンドが異様に長くなるのでラッパースクリプト書いたりするのですが、
シェルスクリプトはそこで今でも大活躍してます。
なんだかんだで便利なんですよねシェルスクリプト。

138 名前:login:Penguin mailto:sage [2018/03/11(日) 21:42:47.19 ID:yaKRWAT9.net]
Dockerfile に関しては冪等性なんていらないのでそのまま使う派
Ansible が便利なのはわかるけど、Dockerfile に関しては 1 のことをするのに
10 できる道具で頑張る感じがつらい。

Dockerfile 以外のセットアップに関してはマニュアルとか書き方とか面倒すぎるので
学習コスト払ってもシェルスクリプトは使わないで Ansible でも良いんじゃねって思う。
私にとってはトラブル解決時に 1000 行とかの自作のシェルスクリプトなんかより Ansible のコードを読むほうが楽。
まぁ、自分しか使わないシェルスクリプト100行ぐらいで済むものならどっちでもいいけどね。

インフラテストに関しては goss 使ってるな〜。Rspec の記述や Ruby 入れるのだるいので。
goss は golang 製だからバイナリ置くだけだし、stdin つないでテスト渡せるので実行が簡単。
Yaml でかけて、機能が多すぎないのでテスト書くのもむっちゃ楽。
欠点は PullRequest などへの反応が鈍い、もともと作者が golang の勉強で作ったものなので設計が気になる(特に比較方法とか)

DockerImage のみのテストならば countainer-stracuture-test という google 製のものが出てきたのでこれも面白い
これに関しては、できたてなのでバグがかなり多い。新たなコミットのたびにバグができるw
テストできる機能は少ないが、docker engine 無しでイメージテストができたり、メンテナの反応も速いしコードも読みやすい。
今後ちゃんと出来上がれば化けるかも

139 名前:login:Penguin mailto:sage [2018/03/11(日) 23:36:05.79 ID:gLOQBJNa.net]
> 私にとってはトラブル解決時に 1000 行とかの自作のシェルスクリプトなんかより Ansible のコードを読むほうが楽。
> まぁ、自分しか使わないシェルスクリプト100行ぐらいで済むものならどっちでもいいけどね。

俺の観測ではシェルスクリプトが100行だと
Ansibleのコードは1000行って感覚なんだけどね

140 名前:login:Penguin mailto:sage [2018/03/12(月) 00:00:41.81 ID:iAV7tz/N.net]
大きな会社だと仮想サーバ一つ立てるのにいちいちインフラエンジニアにお伺い
たてないといけないけど、リソース多めのVM一つ作ってもらえばそこにdocker入れて
いろんなコンテナたててやりたい放題できるという。

4vCPU,8GBMem,100GBHDDあればデフォルト設定

141 名前:ナコンテナ5くらいはいける。
もちろん検証用DBコンテナとか立てるときはMySQLのinnodb_buffer_pool_size小さめにしておくとか
ちょっとした工夫はいるけど。
[]
[ここ壊れてます]



142 名前:login:Penguin mailto:sage [2018/03/12(月) 00:09:31.95 ID:0gO9Md9Y.net]
やっぱりシェルスクリプトだとなんでそんなに
メンテナンス性が悪いものが出来上がるのか?
書くことはAnsibleとかわらんだろ(むしろ短く書ける)
と思ってるわけだが。

ふと気づいたがもしかしてシェルスクリプトで書く時に関数作ってないのか?
ただ単に上から下へとコマンドを書き連ねるだけ?

プログラマの感覚だとどんな言語であれ可読性・メンテナンス性が
高くないように記述するもんなんだが、インフラエンジニアってのは
それができてないレベルだったりするの?

143 名前:login:Penguin mailto:sage [2018/03/12(月) 00:13:02.11 ID:0gO9Md9Y.net]
>>132
まあ会社が会社だとそういうことなんだろうけど

> 4vCPU,8GBMem,100GBHDDあればデフォルト設定でコンテナ5くらいはいける。
それ個人用に配給されてるPCレベルだよね?って思わなくもないw

うちは入社当時のMac Book Proの一番上当たりの性能
CPUは忘れたけど、16GBのメモリと、512GBのSSDだったかな?

144 名前:login:Penguin mailto:sage [2018/03/12(月) 01:17:08.47 ID:iAV7tz/N.net]
>>134
個人PCレベルというのは否定できないw
社員数多いとリソース配分が大変なんです。
HDDはシンプロでごまかして、vCPUもまあまあ割り当てられるとして、
メモリは慢性的に不足します。

個人のMacでそれだけリソースあるなら
ローカルPCにdocker入れて使えば良いですね。

その場合も個人的にはDocker for Mac使うんじゃなくてVagrantで立ち上げたLinuxVMにdocker入れて使います。
理由は何となくというか、その方が環境が汚れなさそうだからというか。

145 名前:129 mailto:sage [2018/03/12(月) 01:34:06.50 ID:cIbUTTA5.net]
bash のスクリプトだろうと、Python だろうと golang だろうと関数は普通に使うね。

で、シェルスクリプト 100 行だと Ansible のコード1000 行ぐらいという感覚も正しいと思うよ。
実際は、500とか600 ぐらいだと思うけど。
Ansible の yaml だと 30 行くらいかな。

てか、コードが短く "も" 書けるのが嫌なんだけどね。
例えば、2つまでつなげるなら期待通りに動くから if を使わずに || や && でつないだりとかね。

私自身はもともと Perl からの出身だから、色々な書き方があって(TIMTOWTDI)
書き方によっては短く書けるのが楽しいとか良いと思う面はある。
ただ、コードゴルフをやるならまだしも、自分以外が見るコードは
そういうことをする余地がなければ無いほど良いと思ってる。

あと、shell も perl も(Cも)変数のスコープがデフォルトでグローバルなのが良くない。
ちゃんと動くからって、スコープ意識しない使い方のコード書かれてそれをレビューで指摘したり
そのために CI を準備したりとか考えたくない。
そういう点では python の pep とか golang の fmt/lint とか最高だと思ってる。

Dockerfile も「どれだけ削るか」などで人によって書き方がまちまちになってしまうんだけど、
普通は大規模にはならないし、出来上がるイメージをバイナリだと思ってちゃんと動けば
中身がどうであれとりあえずは良いのかなと思えたりするので結構好き。

「プログラマの感覚だとどんな言語であれ可読性・メンテナンス性が高くないように記述するもんなんだが」
は可読性、メンテナンス性が高いようにじゃない?

146 名前:login:Penguin mailto:sage [2018/03/12(月) 01:36:17.28 ID:0gO9Md9Y.net]
> 「プログラマの感覚だとどんな言語であれ可読性・メンテナンス性が高くないように記述するもんなんだが」
> は可読性、メンテナンス性が高いようにじゃない?

そのとおり「高くなるように」と書いたつもりだった
どうもGoogle IMEの調子が良くないんだよ。
特定のアプリで極端に変換が遅くなることが有る。
アプリ再起動したら直ったからメモリリークでもしてんのかな?

147 名前:login:Penguin mailto:sage [2018/03/12(月) 01:47:41.96 ID:0gO9Md9Y.net]
>>136
やっぱり理解できない。
何かしらの越えられない壁の
あっち側とこっち側にいる気分

> てか、コードが短く "も" 書けるのが嫌なんだけどね。

> そういうことをする余地がなければ無いほど良いと思ってる。

コードは曖昧さがなく、削ぎ落とすものが一切ないレベルが良いと思ってる。
だからいろんな書き方があるとは思わず、
それ以外の書き方は「なんでそんな無駄なことすんの?」としか思わない

あと当たり前だけどコードゴルフのような変数名を短くするみたいな
アホなことはしない。無駄を無くすだけ。

俺のプログラミングは関数型の影響は大きいと思ってるので、関数型勉強すると良いよ
と言っても俺、関数型言語あまり知らないけどねwww 考え方を理解してるだけ

> あと、shell も perl も(Cも)変数のスコープがデフォルトでグローバルなのが良くない。
それも手元じゃ解決済みなんだよな(苦笑)
感覚的に問題点を潰してる俺偉いw

ヒントを言うとサブシェルを使うとその中で定義した変数は中に閉じ込められるので
localを使わなくてもローカル変数相当になる。

148 名前:login:Penguin mailto:sage [2018/03/12(月) 13:05:39.78 ID:NF8xf4ym.net]
>>138
そういうルールをどうやっていろんなスキルレベルの人と共有するんですかって話

149 名前:login:Penguin mailto:sage [2018/03/12(月) 21:57:46.32 ID:0gO9Md9Y.net]
>>139
逆に言えば、そういうルールを共有できればOKってことだよね?

みんなありがと。いろいろ言ってみて話を引き伸ばしたけど
もうそろそろ十分かなと思ってる

ansibleではなくシェルスクリプトでやる上で、何が足りなくて
何が必要なのかわかった気がする。

今回はこれぐらいで切り上げるよ
またどこかで違う切り口から探るかもしれないけどw

150 名前:login:Penguin mailto:sage [2018/03/13(火) 06:36:13.77 ID:w7drUkX+.net]
>>140
そう。
その意気で、ぜひ世界に通用するシェルスクリプトフレームワークを作ってくれ。

151 名前:login:Penguin mailto:sage [2018/03/19(月) 12:18:33.64 ID:10HKUK+F.net]
Dockerfileからラッパースクリプトを呼び出すのは良いとしても、
DockerHubでそのシェルスクリプトを表示させるすべがないのが問題。

結局GitHubに行くことになるならDockerfileの表示ページいらないのでは。



152 名前:login:Penguin mailto:sage [2018/03/21(水) 17:17:07.53 ID:6Vet870y.net]
Dockerの教科書第二版が4月に出るぞー

153 名前:login:Penguin mailto:sage [2018/03/26(月) 16:00:04.53 ID:W/pr8b3f.net]
Arukasのβ外れたけど予想以上にコスパ悪いなぁ…
さくらはコンテナホスティングやる気ないのかな

154 名前:login:Penguin mailto:sage [2018/03/26(月) 16:24:25.96 ID:bSj5pGXS.net]
どんなビジョンであれで世界で戦えると思ったのかご説明いただきたい

155 名前:login:Penguin mailto:sage [2018/04/03(火) 07:43:27.59 ID:8ENp9jaE.net]
初心者がLinuxとストレスフリーで生きる為の6か条

1.Winをリプレース出来るなどど考えるのはやめましょう。共用しましょう。
2. 印刷はあきらめましょう。
3. Wifiの使用はあきらめましょう。
4. 音楽・動画・画像の編集/制作はあきらめましょう。
5. Nvidia製品の使用は控えましょう。
6. 教本を買いましょう。Linux界に限ってはググレカスは遠回りです。
7. Ubuntuを我慢して使い続けましょう。

156 名前:login:Penguin mailto:sage [2018/04/03(火) 23:16:59.76 ID:Ry6Q9joG.net]
随分古いな。

157 名前:login:Penguin mailto:sage [2018/04/03(火) 23:44:51.96 ID:9r9tHTvx.net]
>>146
従いますよ

158 名前:login:Penguin [2018/04/20(金) 13:08:52.09 ID:IxQaq2RC.net]
プロフェッショナルの方、どなたか教えてください(/ω\)

今、下記内容のdockerimageを作成したいと思っています。
 
 @ ベースのイメージ:jupyter/datascience-notebook
 A Tensorflowを使いたい ※@にTensorflowがインストールされていないため

その為にdockerfileを下記の通り作成したのですが、
出来上がったdockerimageから作成したコンテナ上で上手くtensorflowが動きません。
※コンテナ内でpythonを起動し、そこで「import tensorflow as ts」を実行すると以下のエラーが出ます。
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
ImportError: numpy.core.multiarray failed to import
ImportError: numpy.core.umath failed to import
ImportError: numpy.core.umath failed to import
2018-04-20 03:56:29.133557: F tensorflow/python/lib/core/bfloat16.cc:664] Check failed: PyBfloat16_Type.tp_base != nullptr
Aborted

dockerfileの内容は以下になりますが、何か間違っていますでしょうか?
もし間違っている場合は、修正内容をお教えください。m(__)m

■dockerfileの内容
From jupyter/datascience-notebook
RUN pip install --upgrade pip
RUN pip install tensorflow==1.5

159 名前:login:Penguin mailto:sage [2018/04/20(金) 22:27:51.02 ID:8yT4IMgr.net]
>>149
エラー文ちゃんと読んだんですか?

160 名前:login:Penguin [2018/04/21(土) 10:25:09.06 ID:RQ3vsIdh.net]
>>150
エラー文が理解できなかったです、、

161 名前:login:Penguin mailto:sage [2018/04/21(土) 13:23:47.70 ID:HjK21lH7.net]
>>151
numpyって知ってる?



162 名前:login:Penguin mailto:sage [2018/04/21(土) 13:46:33.79 ID:HtY0Nuyg.net]
なんぱい?

163 名前:login:Penguin mailto:sage [2018/04/21(土) 17:21:10.71 ID:5eINoTB9.net]
>RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa

0x って、16進数か?
0xc は12、0xa は10 って事か?

164 名前:login:Penguin [2018/04/21(土) 19:53:43.47 ID:RQ3vsIdh.net]
>>152
はい、知っています。
これはnumpyのversionが古いということですか?

165 名前:login:Penguin mailto:sage [2018/04/22(日) 09:15:07.32 ID:uHMnXexw.net]
「python module compiled against API version」で検索!

開発者の基本は、エラーメッセージで検索すること

166 名前:login:Penguin [2018/04/22(日) 19:07:10.00 ID:2/k4X0Kz.net]
>>156
検索しましたが、力不足で分かりませんでした。。
少しやってみたものの、

import tensorflow as ts
しただけで、
「The kernel appears to have died. It will restart automatically.
(カーネルが停止したようです。 自動的に再起動します。)」
が出てしまいました。

どなたかお力をお貸しください(/ω\)

167 名前:login:Penguin mailto:sage [2018/04/22(日) 19:23:31.15 ID:lrjQt1PM.net]
いままで偉そうにしてたやつ、ちゃんと答えてあげろや

168 名前:login:Penguin mailto:sage [2018/04/22(日) 23:46:18.23 ID:uHMnXexw.net]
「docker hub tensorflow」で検索!

169 名前:login:Penguin mailto:sage [2018/04/23(月) 03:34:29.66 ID:VkOu3656.net]
この手の質問って動作環境が横断的だからdockerスレと言語スレ側でたらい回しにされちゃうんだよな
かと言ってマルチポストはできないし悩ましいところ

エラーメッセージやアドバイス貰ったキーワードをダブルクオートで括ったフレーズ検索も駆使して乗り越えるのだ
今こそ成長の時

170 名前:login:Penguin mailto:sage [2018/04/23(月) 06:37:04.24 ID:qKqt8dYQ.net]
>>157
tensorflowのバージョンはどうした?numpyのバージョンはどうした?
バージョンがあってないと言われてるんだからtensorflowのバージョンを1.4とか1.3とかに下げてみて試してみたらいいんじゃないでしょうか。

RUN pip install tensorflow==1.5

171 名前:login:Penguin [2018/04/23(月) 10:45:26.96 ID:gJ+bJQJv.net]
>>161
ありがとうございます!
tensorflowのバージョンを1.3にすることで、エラーも出ず正常にインストールできました。
1.4や1.6では、エラーが出てしまい駄目でした。

皆さん、私の力不足でお手数をおかけ



172 名前:いたしました。
本当にありがとうございました。
[]
[ここ壊れてます]

173 名前:login:Penguin [2018/05/22(火) 07:23:12.42 ID:Czl6p0FW.net]
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

EAAD8

174 名前:login:Penguin mailto:sage [2018/05/22(火) 11:47:01.72 ID:NlhYPEMm.net]
EAAD8

175 名前:login:Penguin mailto:sage [2018/05/27(日) 18:22:16.75 ID:8ka68JJO.net]
ディープラーニング ライブラリの管理で混乱しないようにとdockerを導入したけど
今はdockerで混乱してる
開発環境はどうやって整えるんだ、これ
コンテナの外と中は完全に分かれているのかよ
今あるエディタやアナコンダを呼べないぞ
コンテナを作る時に全部詰め込まきゃダメなのか?
NGCをつかっているけど

176 名前:login:Penguin [2018/05/28(月) 20:34:50.01 ID:G/OxqctX.net]
>>165
はいはい、いつもの仮想マシンの使い方とごっちゃにしてる人ね(笑)

Dockerは環境を作るものじゃなくて、
アプリケーションを作るものです。

ディープラーニングの何をしたいのか知らないけど
コマンドを実行するだろ?
そのコマンドを実行するのにライブラリとか必要だろ?

そのコマンドにライブラリなんか全部くっつけて
一つのDockerコンテナ=アプリケーションを作るものです。

177 名前:login:Penguin mailto:sage [2018/05/28(月) 21:14:26.05 ID:5P04jZKi.net]
>>166
いや、知らんよ
俺は開発元が進めてきたものを使うだけ

178 名前:login:Penguin [2018/05/28(月) 21:25:11.53 ID:5P04jZKi.net]
アプリケーションなら
任意の識別器や分類器を定義しデータを読み込んで学習するアプリケーションが欲しいわ

しかし、環境の切り分けのためじゃないならなんで開発元はdockerを配布しているんだろうね
それも競合を心配する必要ないですよってアピールしながね

179 名前:login:Penguin mailto:sage [2018/05/28(月) 21:47:04.72 ID:G/OxqctX.net]
> アプリケーションなら
> 任意の識別器や分類器を定義しデータを読み込んで学習するアプリケーションが欲しいわ

それを作るのがDockerを使うお前なんだって

180 名前:login:Penguin [2018/05/28(月) 22:02:15.83 ID:5P04jZKi.net]
>>169
それを玄人様たちはどうしているのかってこっちは聞いているだが...

181 名前:login:Penguin mailto:sage [2018/05/28(月) 22:13:34.15 ID:G/OxqctX.net]
普通にコマンド実行に必要なものを
まとめてコンテナにしてるだけだが?



182 名前:login:Penguin mailto:sage [2018/06/03(日) 15:52:37.21 ID:4t3nAm6u.net]
sage

183 名前:login:Penguin mailto:sage [2018/06/24(日) 08:47:17.87 ID:TokMwylE.net]
pullしたubuntuイメージにvimが入っていないんだけど・・・
aptコマンドもないんだけど・・・
docker search ubuntuで出てくるうち全部入りのイメージってどれ?

184 名前:login:Penguin mailto:sage [2018/06/24(日) 22:35:20.55 ID:anZc79Me.net]
dockerってコンテナが動いてる途中でdocker終わらせたらコンテナ内に保存してたファイルはなくなるの?

185 名前:login:Penguin mailto:sage [2018/06/25(月) 05:44:34.47 ID:Uuelo8Ok.net]
>>174
コンテナ起動時にストレージ領域を紐づけてなかったら終了時に綺麗さっぱり消えるようだ

186 名前:login:Penguin mailto:sage [2018/06/25(月) 09:42:17.00 ID:+pzgGIIi.net]
>>174
正確にはコンテナを削除すると無くなる
停止しただけでは無くならない
ゆえに削除するまではdocker logsでログも見れるし
docker commitでイメージ化すれば
docker runで中身を見れる

https://stackoverflow.com/a/39329138

187 名前:login:Penguin mailto:sage [2018/06/25(月) 09:49:22.67 ID:+pzgGIIi.net]
>>173
欲しけりゃ自分のDockerfileに入れるか
全部のコンテナでそれやるのがアレってなら
新しくvimコンテナ作って編集したいファイルだけマウントするか
ホストのファイルをマウントして
ホスト側でvimで編集すれば良い

てか開発環境だよな
本番環境でそれやったら
ちゃんと動く環境を保存出来るっていうDockerの魅力を殺している
場合によっては仕方ない事もあるが

188 名前:login:Penguin mailto:sage [2018/07/01(日) 03:55:45.96 ID:+w2giTsy.net]
>>173
> pullしたubuntuイメージにvimが入っていないんだけど・・・
Dockerの使い方を間違ってる。

あんたが言ってるのは、pullしてきたffmpegコマンドの中に
vimが埋め込まれてないんだけどって言ってるようなもの
Dockerコンテナ = 実行ファイル

ffmpegの処理にvimなんていらないんだから入っていなくて
当たり前だし入れるべきではない

だがaptコマンドは普通入ってるはずだけどな

>>173
> dockerってコンテナが動いてる途中でdocker終わらせたらコンテナ内に保存してたファイルはなくなるの?
ffmpegコマンドの中で内部的に使用しているファイルはコンテナ削除とともに消える。
Dockerコンテナの中のファイルはメモリと考えればいい。
コマンドを終了するとメモリも解放される

(Dockerコンテナ版の)ffmpegコマンドから書き出したいなら、
ボリュームでコマンド(コンテナ)外部への読み書き場所を指定する

189 名前:login:Penguin mailto:sage [2018/07/01(日) 09:04:34.19 ID:EBIMlKr7.net]
>>178
アドバイスありがとう
ということは、dockerで起動したOS内でvimが使いたければ
vimのコンテナを探してきて追加起動しろってこと?
どこのサイトにどんな名前でvimのコンテナがあるのか調べるみたいなことを
アプリごとにやってたら、環境を作るまでどれだけの手間と時間がかかることやら
このソフトの何が持てはやされているのか全く理解できない

190 名前:login:Penguin mailto:sage [2018/07/01(日) 09:21:20.95 ID:+w2giTsy.net]
>>179
だから使い方が間違ってる。
全く理解できないのは、あんたが正しい使い方がわかってないからだよ

そもそもDockerコンテナは使うものじゃない。作るものだ。
アプリのビルド・コンパイルと一緒だよ
もちろん誰かが作ったものがそのまま使えるのなら
使っていいんだが、基本はアプリの開発者が作るもの

vimとかそういうのは、どうせあんたUbuntuとか有名所の
ディストリ使ってるんだろ?そういうのはパッケージメンテナが
ちゃんと動くようにメンテしてくれてる。それで満足してるならそれ使えばいい。

Dockerの出番はそれで満足できない場合だよ。
vimにそういうのがあるのかしれないが、独自にビルドしないと使えない機能を使いたいときや
例えばvimの新しいバージョンを使いたい時。ビルドするためにライブラリも新しくしなければいけない
でもOSのライブラリを新しくすると、他のプログラムに影響が出るかもしれない

そういうときにvimのビルドとそれを動かす環境までも一体化させて、独自のvimを作る
ってときに使うんだよ。実行環境まで含まれてるから、OS標準のライブラリなどを
置き換えたりもしないし、どこに持っていってもそのまま使える
オレオレvimバイナリ(=Dockerコンテナ)の出来上がりってわけだ

で、そんなもん普通はやらねーだろ? だからアプリの開発者が作るものだって言ったわけだ。
vimなどのパッケージはパッケージのメンテナが頑張って動くようにしてくれてる
だけど、自分で作ったアプリは、自分が頑張るしかないだろ? でも頑張りたくもない
いろんなディストリや、WindowsやMacでも動くようになんかするの大変じゃないか
だからDockerコンテナ化することで、Dockerデーモンさえ動いていれば、
どこに持っていっても同じように動かせるってわけさ
一言で言えば可搬性だな

191 名前:login:Penguin mailto:sage [2018/07/01(日) 09:23:55.84 ID:+w2giTsy.net]
>>179
> ということは、dockerで起動したOS内でvimが使いたければ

それから通常はdockerで起動したOSの中に乗り込んでvim実行して
ファイル修正とかしないからな

独自のDockerイメージを作るときに、デバッグ目的にやることはあるけど
「dockerで起動したOS」なんて考え方を持ってはいけない

なぜなら、何らかのプログラムに実行環境をくっつけただけで、
作られるものは、実行環境付きのなんらかのプログラムなんだから
そこにOSなんてものはないと思え



192 名前:login:Penguin mailto:sage [2018/07/02(月) 19:23:28.69 ID:1jLd0V1g.net]
今日から新しいプロジェクトでmac上でDOCKERを使う事になったんですが

最初の社内のチュートリアルに従ってHOMEBREWからインストールして起動したところ
新しいバージョンがありますって言われたので
アップデート&ReLunchをしたらそのまま反応がなく
アプリからダブルクリックしても起動しなくなりました

MAC使うのもバージョン管理ツール使うのも初めてだらけで
くだらない質問で申し訳ないんですが
考えられる解決方法はありませんでしょうか

193 名前:login:Penguin mailto:sage [2018/07/02(月) 20:07:43.00 ID:Eg1cE ]
[ここ壊れてます]

194 名前:gm9.net mailto: 社内の人に聞け []
[ここ壊れてます]

195 名前:login:Penguin mailto:sage [2018/07/02(月) 20:45:02.37 ID:Y1QFiQ2T.net]
普段サーバーサイドJavaとかPHP JSでウェブアプリかいてて
mac の Ruby on Rails のサーバーサイドの案件が修羅場でヘルプはいったんだけど
分かってる人はみんな忙しくて質問なげてもなかなかかえってこないんですよね

でもこんな情報じゃわかるわけないですよね…
明日また社内できいてみます
すいませんでした…

196 名前:login:Penguin mailto:sage [2018/07/03(火) 00:50:17.25 ID:1PLz+sRr.net]
>>182
dockerは公式サイトのやり方でインストールしたほうがいいんじゃね?

197 名前:login:Penguin mailto:sage [2018/07/03(火) 00:52:28.72 ID:1PLz+sRr.net]
社内のチュートリアルが何年前に書かれたかだな
Docker Toolbox使ってたら古いやり方だな
まあ社内全員やり方が決まってるなら仕方ないが

198 名前:login:Penguin mailto:sage [2018/07/03(火) 02:50:11.95 ID:88JNN2bg.net]
支給されたmac PCが他の人も使うみたいで
別の人がインストールしたhomebrewが/usr/localにはいってて
権限が変更できないくてホーム以下にインストールしたんだけどそのせいなのかなと…

1日がかりでbrew rbenv dockerの3ついれただけなんだけど
どれが原因なのかがぜんぜん分からない…
マックはじめてで最初の1,2時間は日本語変換や窓の最小化やコピペもわからないレベルで作業効率も悪いし

Javaからruby覚えるのはすぐできると思ったけど
OSが違ったりフレームワークの環境構築がこんな大変だと思わなかった

199 名前:login:Penguin mailto:sage [2018/07/03(火) 05:53:39.58 ID:0N07jwhz.net]
もうmac板で質問したほうがいいのでは

200 名前:login:Penguin mailto:sage [2018/07/03(火) 06:10:23.01 ID:1PLz+sRr.net]
>>187
なんの苦労もなくhomebrewを使いたいなら
Macを他に人に使わせるな。そしてクリーンインストールして
自分ひとりのものとして使え

homebrewはインストールしたユーザー以外がまともに使うことは無理
homebrew自体はsudo使ってインストールするくせに(/usr/localに書き込むから)
パッケージ自体は/usr/local以下に一般ユーザーでインストールするからな
ディレクトリはこんな感じになる

https://github.com/Homebrew/brew/issues/3322#issuecomment-336770069
> -rw-r--r-- 1 weicool admin 3161 Jan 18 2016 /usr/local/CODEOFCONDUCT.md
> drwxr-xr-x 18 weicool admin 576 Oct 8 13:58 /usr/local/Cellar/
> drwxr-xr-x 2 weicool wheel 64 Oct 15 10:57 /usr/local/Frameworks/
> -rw-r--r-- 1 weicool admin 1241 Jan 18 2016 /usr/local/LICENSE.txt

見ての通り、adminグループに書き込み権限がないから、
最初にパッケージをインストールした人以外がいじることはできない。
brew管理用のユーザーを別で作成するとかumaskの設定をいじってたりとか
ちゃんとやってればマルチユーザーで使えるかもしれんがな

homebrewの設計自体はsudoを使わない方針なんだが
https://docs.brew.sh/FAQ#why-does-homebrew-say-sudo-is-bad
じゃあ共有のディレクトリ/usr/localを使うなと

201 名前:login:Penguin mailto:sage [2018/07/03(火) 06:28:04.40 ID:88JNN2bg.net]
そうなんですね
クリーンインストールしていいかお願いしてみます
検索するとわりとホーム以下にインストールする方法とかでてきたのでいけるかと思ったんですけど

コーディングスキルかわれて入ったのに初日から環境構築だけでつぶされてストレス
なまじできると思われてるからしょーもない質問もしにくいし

もともと大学院研究室あがりでスクラッチからかくのが好きな
ブラックボックスなツール使うの気持ち悪い
古い人間だから昨今のフレームワークだらけの業界きついなあ…



202 名前:login:Penguin mailto:sage [2018/07/03(火) 06:35:07.67 ID:HvrBhqqa.net]
頭でっかちの使えないやつか現場も大変だ

203 名前: []
[ここ壊れてます]

204 名前:login:Penguin mailto:sage [2018/07/03(火) 06:54:24.03 ID:B87Zf6Sc.net]
macやhomebrewがはじめてなのはともかく、バージョン管理ツールはじめてはないわ
それでひとりで環境構築しろってほったらかしなのも普通はありえんと思うけど
仕事ほしくて経験ないのに経験ありとか嘘かいたんじゃねーの

205 名前:login:Penguin mailto:sage [2018/07/03(火) 07:12:51.42 ID:ArJzlEvp.net]
最後にききたいんですけど /usr/local じゃなく
~〜/homeblew に homeblew をいれたんですが
この blew から Docker をインストールした場合実態はどこにあるんでしょうか

チュートリアルにアプリケーションからdockerを起動とあるんですけど
/Application/Docker.app を起動したときにもっと新しいのがありますっていわれて
更新かけたらそれっきりだったので
これが前の人がインストールしたやつだったのかな…

コマンドラインの docker はホーム以下のパスになってたんですけど
アプリケーションからじゃなくコマンドラインからDockerのGUIアプリ起動する方法ってありますか?

206 名前:login:Penguin mailto:sage [2018/07/03(火) 11:19:37.64 ID:oYvmZw+l.net]
解決しました

初回起動時に窓が出たのでずっと窓を探してたんですけど
右上のクジラマークからアクセスするんですね…
おさわがせしました

207 名前:login:Penguin mailto:sage [2018/07/03(火) 13:54:24.15 ID:oYvmZw+l.net]
何度もすいません

docker-compose up -d

で ERROR: manifest for xxx/yyy:2018zzzz not found が出るんですがどこを見ればいいのでしょうか

一応同じディレクトリに docker-compose.yml はあって
yyy:
image: xxx/yyy:2018zzzz
と書かれています

208 名前:login:Penguin mailto:sage [2018/07/03(火) 14:20:45.35 ID:1PLz+sRr.net]
>>195
普通はそうならないので環境の問題です
OSをクリーンインストールしてください

209 名前:login:Penguin mailto:sage [2018/07/04(水) 02:14:06.32 ID:COxRspz9.net]
rubyは導入ハードル高すぎ
よっぽど複雑なプロジェクトでもなけりゃこんな開発環境作ってるあ労力で案件終わるわ

210 名前:login:Penguin mailto:sage [2018/07/04(水) 06:04:14.37 ID:WJvTzUXE.net]
利用プロジェクトの多くが低品質だったせいでいわゆるアタリショックみたいな扱い受けてるよな
負の遺産だとかRuby巻き返しの目は潰えてるとまで言われてるし・・・Javaみたいにはならんで欲しいマジで

211 名前:login:Penguin mailto:sage [2018/07/07(土) 17:30:55.41 ID:fg0oR1Sy.net]
散々Perlディスっといてこれだもんなm9(^Д^)プギャー



212 名前:login:Penguin mailto:sage [2018/07/07(土) 21:06:35.47 ID:1D6mHUpx.net]
やめて…perlは6を引き伸ばし杉た件のせいで世間との剥離からユーザー離れが尋常じゃなく
引き合いに出されると最底辺の戦いじみて嘲笑の的です…

213 名前:login:Penguin mailto:sage [2018/07/07(土) 21:59:02.61 ID:fg0oR1Sy.net]
イシキダケタカイケイ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<369KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef