- 11◆jG/Re6aTC.23/05/01(月) 22:45:33
- 2二次元好きの匿名さん23/05/01(月) 22:46:14
このレスは削除されています
- 31◆jG/Re6aTC.23/05/01(月) 22:47:03
- 41◆jG/Re6aTC.23/05/01(月) 22:51:28
- 51◆jG/Re6aTC.23/05/01(月) 22:58:31
- 61◆jG/Re6aTC.23/05/01(月) 23:04:17
- 71◆jG/Re6aTC.23/05/01(月) 23:23:59
- 81◆jG/Re6aTC.23/05/01(月) 23:28:14
- 91◆jG/Re6aTC.23/05/01(月) 23:41:05
- 101◆jG/Re6aTC.23/05/01(月) 23:42:36
- 111◆jG/Re6aTC.23/05/01(月) 23:55:33
- 121◆jG/Re6aTC.23/05/02(火) 00:24:51
- 131◆jG/Re6aTC.23/05/02(火) 00:26:06
- 141◆jG/Re6aTC.23/05/02(火) 00:29:27
- 151◆jG/Re6aTC.23/05/02(火) 00:30:26
- 161◆jG/Re6aTC.23/05/02(火) 00:31:42
キリがいいので今日はここまで
明日はいよいよ今までローカルで動かしていたアプリをインターネットの海に浮かべてみるところまで行...けたらいいなぁ
引き続きご感想ご意見ご質問アドバイスお待ちしております - 17二次元好きの匿名さん23/05/02(火) 00:45:41
Webしらんけどクラウドで日付扱うのロケール周り面倒そう
内部UTCで持ってクライアントで戻して表示する感じなんすかね?どこかでお漏らしそう - 181◆jG/Re6aTC.23/05/02(火) 01:44:32
コンテナで動かすつもりなんで大抵は環境変数に設定してれば大丈夫なはず
DB - webapi(ここでtz設定) - webui(表示だけ)
という感じですね
クライアント(web ui)側では基本的にデータ処理はしたくないですね
- 191◆jG/Re6aTC.23/05/02(火) 11:11:08
今日は昼に少し時間ができたのでこの時間も少し進めます
ある意味私が一番興味があったOkutetoの検証をしたいと思います - 201◆jG/Re6aTC.23/05/02(火) 11:14:02
前提として
Webアプリをインターネットに公開するのにはいくつか手段があります
1. ローカルサーバでアプリを構築しインターネットに公開する
2. インターネット上のサーバにアプリを構築し公開する
3. 既にインターネット上で公開されているサーバにアプリを構築する
大まかに分けてこの3つかと - 211◆jG/Re6aTC.23/05/02(火) 11:17:22
1. ローカルサーバでアプリを構築しインターネットに公開する
これは今の私の環境に一番近いです
ローカルでのアプリ構築は終わっているのでこれを何かしらの手段でインターネット上に公開すればこれになりますね
無料の公開手段となると「ngrok(エングロック)」が有名でしょうか
結構簡単にできるようなのですがセキュリティ的にやや不安なところがあるので現状は「最終的に候補がなければ採用」くらいに考えています - 221◆jG/Re6aTC.23/05/02(火) 11:24:18
2. インターネット上のサーバにアプリを構築し公開する
これはいわゆるIaaS(インフラストラクチャ-アズ-ア-サービス)ですね
インターネット上に仮想のサーバを作ってもらってそれを使わせてもらう感じです
いわゆるサーバのまま渡されるので必要なサービスを動かすための各種セットアップをユーザー側で実施する必要があります
メリットとしてほとんど自由にアプリなどをインストールできるため使いたいモジュールなどに合わせて細やかな設定が可能です
反面これの無視できないデメリットとして、スペックを要求すると無料では難しくなることが挙げられますね
無料だとメモリやストレージが低スペックだったり連続稼働時間が限られていたり...
(ほぼ)恒久無料となると現状OracleCloud一択になりそうです
そこでさえメモリ1G ストレージ50GB(+50GB)なのでWebサービスだけならまだしも複数サービスを動かそうとするとかなりやりくりしないと厳しそうですね
私は個人のファイル共有サービスとして使ってたりします - 231◆jG/Re6aTC.23/05/02(火) 11:31:59
3. 既にインターネット上で公開されているサーバにアプリを構築する
これはいわゆるSaaS(ソフトウェア-アズ-ア-サービス)やPaaS(プラットフォーム-アズ-ア-サービス)ですね
特定のソフトウェア(+α)がすぐ使える環境を提供しますよ、という感じ
例えばPyton+Web環境のSaaSだと必要ファイルをアップロードしてボタンを押したら即デプロイして公開できますよーという流れ
メリットとしては前提となるモジュールなどが既にインストール済みなためユーザー側が細かく設定せずに目的のサービスを公開できることですね
反面、細かい調整はできないので「このモジュールを使うにはサーバ側にに追加でインストールが必要」みたいな物は使いづらくなります
また、こちらもスペックを要求すると無料枠だと厳しいものがありますね
一昔前はHerokuが無料のPaaSとして有名だったのですが今は有料のみになっていますね
代替サービスも出てはいるのですがやはり少しでも大がかりなものを使おうとするとスペックが足りなかったり連続稼働時間に制限があったりと痒いところに手が届かない印象 - 241◆jG/Re6aTC.23/05/02(火) 11:43:04
では本題のOkutetoは何かというとこれはコンテナを動かすソフトウェア「Kubernetes(クバネティス 以下k8s)」が動いている環境を提供するサービスです
多分PaaSに分類される
k8sが使えればコンテナがインターネット上で動かせるのでアプリを公開できそうですね
Automating the modern developer experience on KubernetesEmpower developers to innovate and deliver cloud-native applications faster than ever.www.okteto.com - 251◆jG/Re6aTC.23/05/02(火) 11:44:25
- 261◆jG/Re6aTC.23/05/02(火) 11:48:57
- 271◆jG/Re6aTC.23/05/02(火) 11:49:56
ではこれからこの激安(無料)サービスの実態を暴いていきますわよ(めたん)
- 281◆jG/Re6aTC.23/05/02(火) 11:51:59
まずはOkuteto公式にアクセスして「Try it free」ボタンをクリック
Automating the modern developer experience on KubernetesEmpower developers to innovate and deliver cloud-native applications faster than ever.www.okteto.com - 291◆jG/Re6aTC.23/05/02(火) 11:52:39
あ、ちなみにスレ主もOkutetoに関してはマジで初見です
- 301◆jG/Re6aTC.23/05/02(火) 11:56:15
- 311◆jG/Re6aTC.23/05/02(火) 11:57:33
- 321◆jG/Re6aTC.23/05/02(火) 12:00:08
- 331◆jG/Re6aTC.23/05/02(火) 12:08:40
飯食ってきます
- 341◆jG/Re6aTC.23/05/02(火) 13:07:44
再開
- 351◆jG/Re6aTC.23/05/02(火) 13:13:37
- 361◆jG/Re6aTC.23/05/02(火) 13:55:04
あれか...
一般的なメールドメインだと駄目なやつかこれ... - 371◆jG/Re6aTC.23/05/02(火) 14:16:16
やむを得ん...カスタムドメインのメールアドレスを何とかして調達してみるか...
- 38二次元好きの匿名さん23/05/02(火) 15:23:52
このレスは削除されています
- 391◆jG/Re6aTC.23/05/02(火) 15:29:29
原因
Githubにメールアドレスの登録が必要なのだが、Oktetoはその中でもgmail.comのような有名どころのメールアドレスでは認められないようだ(おそらく乱用悪用の対策)
対応
詳細な流れはややこしいので割愛するけど
no-ipでドメイン取得
↓
zohoメールでドメインと連携したメールアカウント作成
↓
作成したメールアドレスをGithubに登録
という流れ(詳しく知りたい場合はリクエストあれば補足します)
no-ipもzohoももちろん無料サービス
労力はかかったが無料で突破できたぞ!
PoC目的で会社の許可が下りるなら会社メールアドレスとか使った方がよっぽど楽だと思う - 401◆jG/Re6aTC.23/05/02(火) 15:30:15
外出するのでいったんココでストップ
一応夜には再開予定 - 411◆jG/Re6aTC.23/05/02(火) 22:53:28
FGOやってたらこんな時間に...
再開しまーす
さあ見せてもらおうか
Okutetoの力を! - 421◆jG/Re6aTC.23/05/02(火) 22:55:45
- 431◆jG/Re6aTC.23/05/02(火) 22:57:26
- 441◆jG/Re6aTC.23/05/02(火) 22:59:58
- 451◆jG/Re6aTC.23/05/02(火) 23:04:36
- 461◆jG/Re6aTC.23/05/02(火) 23:09:34
docker-compose exec -it okteto-cli bash
でコンテナの中に入りインストールコマンド
curl
-sSfL | shget.okteto.comを実行...する前にcurlのインストールが必要だったのでインストール
apt-get update && apt-get install -y curl
その後改めてoktetoインストールコマンドを実行
ちゃんとインストールされたっぽい
- 471◆jG/Re6aTC.23/05/02(火) 23:10:40
- 481◆jG/Re6aTC.23/05/02(火) 23:11:45
- 491◆jG/Re6aTC.23/05/02(火) 23:16:13
- 501◆jG/Re6aTC.23/05/02(火) 23:16:51
- 511◆jG/Re6aTC.23/05/02(火) 23:18:11
- 521◆jG/Re6aTC.23/05/02(火) 23:19:48
- 531◆jG/Re6aTC.23/05/02(火) 23:22:22
- 54二次元好きの匿名さん23/05/02(火) 23:25:43
このレスは削除されています
- 551◆jG/Re6aTC.23/05/02(火) 23:27:37
- 561◆jG/Re6aTC.23/05/02(火) 23:30:29
さて、これでコンテナが操作できるようになっているハズですが肝心のkubectlコマンドを入れ忘れていたのでインストール
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl
- 571◆jG/Re6aTC.23/05/02(火) 23:33:09
これもいるのかな?
okteto context update-kubeconfig - 581◆jG/Re6aTC.23/05/02(火) 23:34:10
- 591◆jG/Re6aTC.23/05/02(火) 23:37:05
- 601◆jG/Re6aTC.23/05/02(火) 23:51:11
- 611◆jG/Re6aTC.23/05/03(水) 00:08:42
少し説明がややこしくなるのですが、k8sというのは複数のサーバをまとめてコンテナ稼働環境を作ることができます。
しかし作成したPodというのは再作成されるとどこのサーバに作成されるかわかりません
つまり再作成されるとアクセスするためのIDやアドレスが変わってしまいます
それではアクセスするときに困るので常に起動しっぱなしの案内人的な役割のサ「Serviceリソース」を作ってそいつにPodへのアクセスを仲介させます
Serviceリソースは自分が担当するPodがどこに起動しても追いかけて場所を把握しているのでアクセスが来た時にPodにリクエストを渡すことができます
リバースプロキシと似ているかもしれませんね
Serviceには3つのタイプ「ClusterIP」「NodePort」「LoadBalancer」があります
それぞれ違いはありますが、ここで使っている「ClusterIP」はインターネット上からアクセスすることができない内々のサーバ間通信のみを仲介するServiceだと認識しておけば良いと思います - 621◆jG/Re6aTC.23/05/03(水) 00:10:43
- 631◆jG/Re6aTC.23/05/03(水) 00:13:46
- 64二次元好きの匿名さん23/05/03(水) 00:19:57
このレスは削除されています
- 651◆jG/Re6aTC.23/05/03(水) 00:20:13
- 661◆jG/Re6aTC.23/05/03(水) 00:34:10
Ingressリソースを作るためにdeployment.yamlに追記します
一般的なIngressの書式と大差ないですが「annotations」の
dev.okteto.com/generate-host: "true"
はOkteto独自ですね
これでホスト名(アクセスする際のドメイン名)を生成してくれるようです
あとはbackend-service-name で中継先のServiceを指定し、port-numberでServiceの使用ポートを指定
pathでどんなパスでアクセスが来た時にそのserviceに中継するかを指定しています(ここでは / なので全てのアクセスをopenresty-serviceに中継) - 671◆jG/Re6aTC.23/05/03(水) 00:38:45
- 681◆jG/Re6aTC.23/05/03(水) 00:39:56
- 691◆jG/Re6aTC.23/05/03(水) 00:42:56
- 701◆jG/Re6aTC.23/05/03(水) 00:44:42
- 711◆jG/Re6aTC.23/05/03(水) 00:47:10
これでコンテナをインターネットに(HTTPSで)公開できることが確認できましたね!
すごいぞOktetoこれが無料でできていいのかOkteto
キリがいいので今日はここまで
次回はいよいよ冷蔵庫アプリをこのOkutetoでインターネットアクセス可能にする...準備かな
ご意見ご要望ご感想アドバイスお待ちしております - 721◆jG/Re6aTC.23/05/03(水) 08:46:06
ほしゅ
- 731◆jG/Re6aTC.23/05/03(水) 12:37:52
- 741◆jG/Re6aTC.23/05/03(水) 12:41:05
- 751◆jG/Re6aTC.23/05/03(水) 12:43:16
- 761◆jG/Re6aTC.23/05/03(水) 13:25:22
- 771◆jG/Re6aTC.23/05/03(水) 13:26:05
ホントは認証をひとまとめにしないならリバプロは不要になるんだけど...
何か良い方法ないかな? - 781◆jG/Re6aTC.23/05/03(水) 13:31:53
おや?
Oktetoのドキュメントを眺めていると「Private Endpoints」という項目が
どうやらこれをIngressで有効にするとアクセス前に認証をかけてくれるみたいだ
Oktetoユーザで認証する模様
これを使えばいけるかも? - 791◆jG/Re6aTC.23/05/03(水) 13:32:34
- 801◆jG/Re6aTC.23/05/03(水) 13:34:53
- 811◆jG/Re6aTC.23/05/03(水) 13:38:55
- 821◆jG/Re6aTC.23/05/03(水) 13:40:35
- 831◆jG/Re6aTC.23/05/03(水) 13:42:07
- 841◆jG/Re6aTC.23/05/03(水) 13:44:35
- 851◆jG/Re6aTC.23/05/03(水) 13:46:56
- 861◆jG/Re6aTC.23/05/03(水) 13:51:19
- 871◆jG/Re6aTC.23/05/03(水) 14:06:45
- 881◆jG/Re6aTC.23/05/03(水) 21:00:48
- 891◆jG/Re6aTC.23/05/03(水) 21:02:56
- 901◆jG/Re6aTC.23/05/03(水) 21:07:40
1と2はオリジナルイメージをビルドしてその中に取り込んでしまえば解決します
しかし3と4はイメージの中に取り込むとまずいです
基本的にコンテナイメージはDokcerhubというインターネット上のパブリックリモートレジストリにPush(アップロード)して使うのが一般的です
しかしそうなると接続用の証明書や接続情報をコンテナの中に埋めてしまった場合不特定多数の人がそのイメージ(および内部の接続情報)を入手できてしまいます
セキュリティ的にそれはまずい
上手くいったら構成を公開しようとしているのならなおさらです
(一応Dockerhubにもプライベートリポジトリ(自分専用のイメージ置き場)を作ることができるのですが無料だとかなり限定されるのでできれば避けたい) - 911◆jG/Re6aTC.23/05/03(水) 22:48:39
なので方針としては
1. 公開しても良い部分だけコンテナイメージに固める
2. それ以外の部分は外付けする
となります
コンテナイメージを作っていきましょうか - 921◆jG/Re6aTC.23/05/03(水) 22:58:18
- 931◆jG/Re6aTC.23/05/03(水) 23:04:01
- 941◆jG/Re6aTC.23/05/03(水) 23:05:47
- 951◆jG/Re6aTC.23/05/03(水) 23:10:14
- 961◆jG/Re6aTC.23/05/03(水) 23:12:58
- 971◆jG/Re6aTC.23/05/03(水) 23:16:50
- 981◆jG/Re6aTC.23/05/03(水) 23:24:07
- 991◆jG/Re6aTC.23/05/03(水) 23:27:58
あとはweb-uiと同様にビルドですね
今回だと
docker build -t <dockerhubユーザ名>/fridge-app/web-api:0.0.1 .
でしょうか
今さらですがビルドコマンドは対象のDockerfileがあるカレントディレクトリに移動して実行する必要があります
あと以前作ったイメージはついでに削除しておきます
docker rmi fridge-app/web-api:0.0.1
で削除できますね
- 1001◆jG/Re6aTC.23/05/03(水) 23:30:51
- 1011◆jG/Re6aTC.23/05/03(水) 23:33:42
- 1021◆jG/Re6aTC.23/05/03(水) 23:38:19
- 1031◆jG/Re6aTC.23/05/03(水) 23:45:20
あーちょっとイメージの命名ミスったかもです
<dockerhubユーザ名>/fridge-app/web-api:0.0.1
のように2階層以上のイメージ名はdockerhubは対応してなさそうです
<dockerhubユーザ名>/fridge-app-web-api:0.0.1
のようにしなければいけないということですね
- 1041◆jG/Re6aTC.23/05/03(水) 23:55:27
うーんこういう時harborならあまり考えなくていいんだけど...
- 1051◆jG/Re6aTC.23/05/04(木) 00:02:58
お
代わりにGitLabのコンテナレジストリを使えば行けそうです
これにしてみましょう - 1061◆jG/Re6aTC.23/05/04(木) 00:04:22
docker build -t registry.gitlab.com/<GitLabユーザ名>//fridge-app/web-api:0.0.1 .
のようにイメージの帰属する先をregistry.gitlab.comに変更します
次にdocker loginもデフォルトのログイン先ではなく
docker login registry.gitlab.com
とします
- 1071◆jG/Re6aTC.23/05/04(木) 00:11:44
- 1081◆jG/Re6aTC.23/05/04(木) 00:12:49
- 1091◆jG/Re6aTC.23/05/04(木) 00:15:56
キリがいいので今日はここまで
明日こそはOkueto上にアプリコンテナを浮かべてインターネットアクセスできるようにしたいですね
引き続きご意見ご感想ご質問アドバイスお待ちしております
...
ただもうこのへん興味ある人も少ないのかもなー
もしリクエストがあるならインフラらへんは裏でちゃちゃっとやってWebコンテンツ系を中心に投稿する方がいいのかな? - 1101◆jG/Re6aTC.23/05/04(木) 00:18:32
ちなみにGitLabはGithubと同じようにプロジェクト(ソースコード)が管理できるサービスです
もちろん無料
私はGitLabの方が好きですね
ソースコードだけでなくDockerhubのようにコンテナレジストリの機能も提供してくれます(今回はじめて使いましたが)
Dockerhubはプライベートなコンテナリポジトリは1つしか作れないのにGitLabだと無制限に作れるようです - 1111◆jG/Re6aTC.23/05/04(木) 02:14:46
- 1121◆jG/Re6aTC.23/05/04(木) 12:03:51
- 1131◆jG/Re6aTC.23/05/04(木) 12:35:51
- 1141◆jG/Re6aTC.23/05/04(木) 12:37:51
- 1151◆jG/Re6aTC.23/05/04(木) 12:39:57
- 1161◆jG/Re6aTC.23/05/04(木) 12:41:56
- 1171◆jG/Re6aTC.23/05/04(木) 12:53:31
あとはこのnsにPod(コンテナ)を作っていくわけですが解決しなければならない課題がいくつか
1. 結局walletどうやってコンテナに持っていくの?
2. 結局.envの接続情報どうやって持っていくの?
3. k8sのはdocker loginないけどどうやってイメージをPull(ダウンロード)するの? - 1181◆jG/Re6aTC.23/05/04(木) 14:02:13
- 1191◆jG/Re6aTC.23/05/04(木) 14:04:57
- 1201◆jG/Re6aTC.23/05/04(木) 14:09:41
- 1211◆jG/Re6aTC.23/05/04(木) 14:42:37
- 1221◆jG/Re6aTC.23/05/04(木) 21:33:00
- 1231◆jG/Re6aTC.23/05/04(木) 21:37:06
- 1241◆jG/Re6aTC.23/05/04(木) 21:42:42
- 1251◆jG/Re6aTC.23/05/04(木) 21:43:34
色々めんどくなったのでデフォルトnsをアプリ用nsに変更
kubectl config set-context $(kubectl config current-context) --namespace=<アプリ用ns>
- 1261◆jG/Re6aTC.23/05/04(木) 21:46:05
- 1271◆jG/Re6aTC.23/05/04(木) 21:49:18
次はwalletです
先ほどの.envの時とほぼ同じですが
「--from-env-file」ではなく「--from-file」
ファイル単体ではなくディレクトリを指定している
という点で異なります
こう書くとディレクトリ内の複数ファイルを1つのsecretとしてまとめることができます
kubectl create secret generic <secret名> --from-file=./wallet --dry-run=client -o yaml -n <対象ns> | kubectl apply -f -
ここではは「fridge-app-wallet-secret」というsecret名で登録します
- 1281◆jG/Re6aTC.23/05/04(木) 21:51:39
- 1291◆jG/Re6aTC.23/05/04(木) 21:56:30
- 1301◆jG/Re6aTC.23/05/04(木) 22:01:58
- 1311◆jG/Re6aTC.23/05/04(木) 22:05:14
- 1321◆jG/Re6aTC.23/05/04(木) 22:08:58
- 1331◆jG/Re6aTC.23/05/04(木) 22:10:55
walletファイルはそのパスのファイルを表示すればいいので
ls -al /app/wallet
でいいですね
こちらもOK! - 1341◆jG/Re6aTC.23/05/04(木) 22:11:10
- 1351◆jG/Re6aTC.23/05/04(木) 22:55:15
さあいよいよアプリコンテナをインターネットの海に浮かべる時です
- 1361◆jG/Re6aTC.23/05/04(木) 22:56:24
いかんまだ課題が残ってた
「認証が必要なのでどうやってGitlabコンテナレジストリ上にあるイメージをPullするの?」
をどうにかします - 1371◆jG/Re6aTC.23/05/04(木) 22:59:35
- 1381◆jG/Re6aTC.23/05/04(木) 23:05:54
- 1391◆jG/Re6aTC.23/05/04(木) 23:07:02
- 1401◆jG/Re6aTC.23/05/04(木) 23:13:28
- 1411◆jG/Re6aTC.23/05/04(木) 23:15:20
- 1421◆jG/Re6aTC.23/05/04(木) 23:21:36
- 1431◆jG/Re6aTC.23/05/04(木) 23:22:41
「fridge-app-image-pull-secret」の部分は作成されるsecret名なので自由でいいです
- 1441◆jG/Re6aTC.23/05/04(木) 23:28:51
- 1451◆jG/Re6aTC.23/05/04(木) 23:31:10
- 1461◆jG/Re6aTC.23/05/04(木) 23:33:59
- 1471◆jG/Re6aTC.23/05/04(木) 23:36:07
- 1481◆jG/Re6aTC.23/05/04(木) 23:39:03
- 1491◆jG/Re6aTC.23/05/04(木) 23:44:26
- 1501◆jG/Re6aTC.23/05/04(木) 23:45:58
- 1511◆jG/Re6aTC.23/05/04(木) 23:48:14
- 1521◆jG/Re6aTC.23/05/04(木) 23:49:07
- 1531◆jG/Re6aTC.23/05/04(木) 23:51:36
- 1541◆jG/Re6aTC.23/05/04(木) 23:54:07
fastapiのルートパスに転送されている可能性がある...のかな?
- 1551◆jG/Re6aTC.23/05/05(金) 00:01:17
うーんどうやら
/api/fridge
ではなく
/fridge
で動いている模様
なぜだー? - 1561◆jG/Re6aTC.23/05/05(金) 00:03:58
- 1571◆jG/Re6aTC.23/05/05(金) 00:08:30
あれかな...
walletファイルはリンクじゃなくて実体ファイルの場所を示さないといけないのかな...
(SecretのVolumeマウントは実体ではなくリンクファイルを中継する) - 1581◆jG/Re6aTC.23/05/05(金) 00:21:41
もしかして...ファイルのパーミッション(権限)が足らんのか?
- 1591◆jG/Re6aTC.23/05/05(金) 01:06:32
うーんはじめての見通しが立たん状態かも
とりあえずやりたくはなかったけどwalletをイメージに含めるか… - 1601◆jG/Re6aTC.23/05/05(金) 01:37:06
walletをイメージに含めてもNotFoundと言われる...いよいよもってお手上げだ
ローカルでは問題なく動いていたのに...
こうなるとコンテナで動かしている以上差異の部分は.envしかないのだが... - 1611◆jG/Re6aTC.23/05/05(金) 01:42:23
あ!環境変数yamlにベタ打ちしたら通った!
問題はenvなのか! - 1621◆jG/Re6aTC.23/05/05(金) 01:54:28
- 1631◆jG/Re6aTC.23/05/05(金) 02:03:28
- 1641◆jG/Re6aTC.23/05/05(金) 02:07:55
- 1651◆jG/Re6aTC.23/05/05(金) 02:09:16
- 1661◆jG/Re6aTC.23/05/05(金) 02:12:54
キリがいいので今日はここまで
今回のエラーは中々骨が折れましたね...
ただ環境ごとの差異が限られるコンテナだからこそenvに問題があると気づけたのはコンテナの良さに触れられて良かったのかなと思いました
明日は次トライアルでやることの整理ですね
引き続きご意見ご感想ご質問アドバイスお待ちしております - 1671◆jG/Re6aTC.23/05/05(金) 13:02:14
保守
- 1681◆jG/Re6aTC.23/05/05(金) 16:59:04
- 1691◆jG/Re6aTC.23/05/05(金) 17:05:13
このトライアル001で定義していた要件である
- 冷蔵庫の中身を画面から確認する
は達成できたことになりますね
このフェーズ最後の作業として今回のフェーズでの気づきや残課題をまとめていきましょう - 170二次元好きの匿名さん23/05/05(金) 17:20:59
見てるよ
- 1711◆jG/Re6aTC.23/05/05(金) 17:27:34
- 1721◆jG/Re6aTC.23/05/05(金) 17:30:37
- 1731◆jG/Re6aTC.23/05/05(金) 17:31:42
- 1741◆jG/Re6aTC.23/05/05(金) 17:32:57
js系がうまく取得できてないな
ということはIngressのパス振り分けに原因がありそう - 1751◆jG/Re6aTC.23/05/05(金) 17:40:54
- 1761◆jG/Re6aTC.23/05/05(金) 17:53:20
気を取り直して今回のフェーズでの気づきや残課題をとりあえず適当に並べて行きます
- Oktetoは24時間非アクティブだとnsがsleepするのでその対策
- データの詳細は下に常時じゃなくて選択した時だけ横からニュっと出てきてほしい
- WebUIにデータの編集・削除インターフェースが必要
- WebAPIに例外処理(DB接続エラー時などの処理)が定義されてない
- 賞味期限は近ければ赤文字にしたい
- 単価計算のため残量のデータ型をint(double?float?)にしたい
- データに購入日を追加したい
こんなところかな? - 1771◆jG/Re6aTC.23/05/05(金) 17:55:14
次のトライアルではこれを優先度準に並び変えて取り組むものを決める感じになるでしょうか
それでは長く続いたこのトライアル001もここで区切りですね
ひとまずお疲れ様でしたー - 1781◆jG/Re6aTC.23/05/05(金) 17:57:02
次のトライアルに移る前に改めてご意見ご質問などあれば是非
初歩的な質問でも「ここもう少し詳しく」とかでも全然大丈夫です
または「俺こんなの使ってるよ」とか「こんなサービスがあるって聞いたことあるよ」とも大変参考になります - 179二次元好きの匿名さん23/05/05(金) 19:04:06
- 1801◆jG/Re6aTC.23/05/05(金) 19:14:34
- 1811◆jG/Re6aTC.23/05/05(金) 23:39:24
色々やろうとしてWindowsでbashが使えないことに憤死しそうだったのでDocker Desktopを使うのをやめてWSL2上のubuntuでDockerを動かすことにしました
grepくらい使えてほしいよ... - 1821◆jG/Re6aTC.23/05/05(金) 23:48:29
### 要件定義_002
ここからトライアル002に入ります
要件定義ですが、まずトライアル001の最初に出ていたのが以下
- 冷蔵庫の中身を記録したい
- 冷蔵庫の中身を画面から確認する
- 商品を買うときに過去の値段と比較したい
- データの登録時にバーコードスキャンで入力を簡素化したい
- データ登録時に写真スキャンで物体検知して入力を簡素化したい(できれば)
- 冷蔵庫の中身から料理メニューを提案してほしい(出来れば)
- 外出先からも使いたい
- 無料で作りたい
- スマホ/PC問わず使えるようにしたい
- 賞味期限切れそうなときは通知してほしい - 1831◆jG/Re6aTC.23/05/05(金) 23:50:15
このうちトライアル001で解決したのを除くと以下
- 冷蔵庫の中身を記録したい
- データの登録時にバーコードスキャンで入力を簡素化したい
- データ登録時に写真スキャンで物体検知して入力を簡素化したい
- 冷蔵庫の中身から料理メニューを提案してほしい
- 無料で作りたい(継続)
- スマホ/PC問わず使えるようにしたい
- 賞味期限切れそうなときは通知してほしい - 1841◆jG/Re6aTC.23/05/05(金) 23:51:13
さらにトライアル001で新たに出た課題・気づきが以下
- Oktetoは24時間非アクティブだとnsがsleepするのでその対策
- データの詳細は下に常時じゃなくて選択した時だけ横からニュっと出てきてほしい
- WebUIにデータの編集・削除インターフェースが必要
- WebAPIに例外処理(DB接続エラー時などの処理)が定義されてない
- 賞味期限は近ければ赤文字にしたい
- 単価計算のため残量のデータ型をint(double?float?)にしたい
- データに購入日を追加したい - 1851◆jG/Re6aTC.23/05/05(金) 23:57:26
これらを雑に統合すると
- 無料で作りたい(継続)
- 冷蔵庫の中身をWeb画面から登録・編集・削除したい
- バーコードスキャンで入力を簡素化したい
- 写真スキャンで物体検知して入力を簡素化したい
- 冷蔵庫の中身から料理メニューを提案したい
- スマホで見やすくするためにデータの詳細は下に常時じゃなくて選択した時だけ横からニュっと出したい
- WebAPIに例外処理(DB接続エラー時などの処理)を追加しエラー時にはWeb画面からおおよそのエラー内容がわかるようにしたい
賞味期限切れそうなときは文字色を変えるなどして知らせたい
- 単価計算のため残量のデータ型を数値型にしたい
- データに購入日を追加したい
- Oktetoは24時間非アクティブだとnsがsleepするので定期的にアクティビティを自動実行したい - 186二次元好きの匿名さん23/05/06(土) 00:01:16
このレスは削除されています
- 1871◆jG/Re6aTC.23/05/06(土) 00:04:54
さらに実現可能性と実現時効果を考えて優先度をつけてみます
私なりに考えてこんな感じかな?
1. 無料で作りたい(継続かつマスト)
2. 単価計算のため残量のデータ型を数値型にしたい
3. データに購入日を追加したい
4. WebAPIに例外処理(DB接続エラー時などの処理)を追加しエラー時にはWeb画面からおおよそのエラー内容がわかるようにしたい
5. 冷蔵庫の中身をWeb画面から登録・編集・削除したい
6. 賞味期限切れそうなときは文字色を変えるなどして知らせたい
7. バーコードスキャンで入力を簡素化したい
8. スマホで見やすくするためにデータの詳細は下に常時じゃなくて選択した時だけ横からニュっと出したい
9. Oktetoは24時間非アクティブだとnsがsleepするので定期的にアクティビティを自動実行したい
10. 写真スキャンで物体検知して入力を簡素化したい
11. 冷蔵庫の中身から料理メニューを提案したい
今回のトライアルの対象は1~5がマスト
6~7を余裕があればという範囲にしようと思います
8以降はアプリとしての本質に影響しない(人力で何とかなる)ので優先度低めです - 1881◆jG/Re6aTC.23/05/06(土) 00:06:19
今日はここで終わりにします
明日は外部設計に移りたいですね
引き続きご意見ご感想アドバイスお待ちしております - 1891◆jG/Re6aTC.23/05/06(土) 00:13:52
あ、例外として
- Oktetoは24時間非アクティブだとnsがsleepするので定期的にアクティビティを自動実行したい
は裏で並行して検証します
こればかりは上手く作用するか24時間待たなければ結果がわからないので...
でも一応Sleepしても人力でWakeUpすればいいので優先度は低めというわけですね - 1901◆jG/Re6aTC.23/05/06(土) 11:07:10
保守
- 1911◆jG/Re6aTC.23/05/06(土) 13:33:32
- 1921◆jG/Re6aTC.23/05/06(土) 13:38:10
- 1931◆jG/Re6aTC.23/05/06(土) 13:40:15
- 1941◆jG/Re6aTC.23/05/06(土) 13:43:25
- 1951◆jG/Re6aTC.23/05/06(土) 15:18:33
1スレ目で誰かが言ってた他のアプリ開発しているスレをようやく見つけた
面白いことやってんねー!タイシタモンジャナイカ
少なくとも自分のプロジェクトよりここの住民のためになりそう
皆も応援しよう!
素人によるWebサイト開発スレ(仮)|あにまん掲示板本職エンジニアでもなんでもないガチの素人がgoogle検索に頼りながら意味もわからず開発してるスレですよくわかんないけどググったらこう書けよって出てきたからその通り書いてみたら動いたわ、レベルの素人が…bbs.animanch.com - 1961◆jG/Re6aTC.23/05/06(土) 17:33:38
そろそろスレ上限間際ですね
次スレ立ててきます - 1971◆jG/Re6aTC.23/05/06(土) 17:38:46
- 1981◆jG/Re6aTC.23/05/06(土) 17:40:22
改めてここまでお付き合いいただきありがとうございました
皆さんの反応がモチベーションの維持に大きくプラスになっています
この掲示板で同じように頑張っている人もいることですし良い影響を与え合えるようにできればいいですね!