Recommended
PDF
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
PDF
PDF
Docker Enterprise Editionで実践するCaaS
PDF
PDF
あなたの安心を高速に守る Container-based CI
PDF
DOO-013_Docker 最新動向と Azure Container Service 入門
PPTX
Engineer is Hero !! DevOps MSA and AI
PPTX
PPTX
2019年度 CaaS ワークショップ @ NTTコム
PDF
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
PDF
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
PDF
PDF
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
PDF
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
Circle ci and docker+serverspec
PDF
Azure DevOps - ALGYAN Oct 2022.pdf
PDF
DevOps on Azure Kubernetes
PDF
Fabric + Amazon EC2で快適サポート生活 #PyFes
PDF
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
PPTX
PDF
PDF
PDF
20120927 findjob4 dev_ops
PDF
Using docker infrastructure
PPT
(Japanese) From Continuous Integration to DevOps - Japan Innovate 2013
PPTX
CircleCIを勝手に紹介・宣伝 + おまけ [OSC Hokkaido 2015 LT]
PDF
論文紹介:InternVideo2: Scaling Foundation Models for Multimodal Video Understanding
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
More Related Content
PDF
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
PDF
PDF
Docker Enterprise Editionで実践するCaaS
PDF
PDF
あなたの安心を高速に守る Container-based CI
PDF
DOO-013_Docker 最新動向と Azure Container Service 入門
PPTX
Engineer is Hero !! DevOps MSA and AI
PPTX
Similar to ソフトウェア工学2023 09 CI CD
PPTX
2019年度 CaaS ワークショップ @ NTTコム
PDF
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
PDF
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
PDF
PDF
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
PDF
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
Circle ci and docker+serverspec
PDF
Azure DevOps - ALGYAN Oct 2022.pdf
PDF
DevOps on Azure Kubernetes
PDF
Fabric + Amazon EC2で快適サポート生活 #PyFes
PDF
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
PPTX
PDF
PDF
PDF
20120927 findjob4 dev_ops
PDF
Using docker infrastructure
PPT
(Japanese) From Continuous Integration to DevOps - Japan Innovate 2013
PPTX
CircleCIを勝手に紹介・宣伝 + おまけ [OSC Hokkaido 2015 LT]
More from Toru Tamaki
PDF
論文紹介:InternVideo2: Scaling Foundation Models for Multimodal Video Understanding
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
PDF
論文紹介:LoRA in LoRA: Towards Parameter-Efficient Architecture Expansion for Con...
PDF
論文紹介:"Keyframe-oriented Vision Token Pruning: Enhancing Efficiency of Large V...
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
PDF
論文紹介:「mPLUG-Owl3: Towards Long Image-Sequence Understanding in Multi-Modal La...
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
PDF
論文紹介:"RAt: Injecting Implicit Bias for Text-To-Image Prompt Refinement Models...
PDF
論文紹介:"Reflexion: language agents with verbal reinforcement learning", "MA-LMM...
PDF
論文紹介:Unboxed: Geometrically and Temporally Consistent Video Outpainting
PDF
論文紹介:"MM-Tracker: Motion Mamba for UAV-platform Multiple Object Tracking", "M...
PDF
論文紹介:Segment Anything, SAM2: Segment Anything in Images and Videos
PDF
論文紹介: "Locality-Aware Zero-Shot Human-Object Interaction Detection" "Disentan...
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
PDF
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
PDF
論文紹介:OVO-Bench: How Far is Your Video-LLMs from Real-World Online Video Unde...
PDF
論文紹介:SoccerNet-v2: A Dataset and Benchmarks for Holistic Understanding of Bro...
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
PDF
論文紹介:HOTR: End-to-End Human-Object Interaction Detection With Transformers, ...
PDF
論文紹介:Simultaneous Detection and Interaction Reasoning for Object-Centric Acti...
Recently uploaded
PDF
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
PDF
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
PDF
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
ソフトウェア工学2023 09 CI CD 1. 2. 3. 代表的な開発プロセス
n一方通行の開発
• モデル
• ウォーターフォール
• V字
• 上流が下流に影響
• 終わるまで始められない
• 遅れたらしわ寄せ
nサイクルを伴う開発
• モデル
• プロトタイピング
• スパイラル
• アジャイル
• 工程を何度も繰り返す
• 顧客の意見を確認し取り入れる
• 顧客に途中の成果物を見せる
• プロトタイプ
• モックアップ(モック)
• 顧客との信頼関係を築く
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. CDはwebアプリに最適
nクラウドサービスを開発・デプロイする
• ローカルで開発
• コーディング
• ビルドとテスト
• ローカル環境で実行
• CI/CD側に投げる
• 自動ビルドとテスト
• 成功したらデプロイ
• web経由で利用可能になる
nフレームワーク
• Python: Streamlit, Flask, Django, dash, FastAPI
• JavaScript: Node.js, React
• Ruby on Rails
• PHP: Laravel
Webix provides a great number of JavaScript UI
widgets with a pefect look and feel great on various
devices. All of them can be effortlessly customized in
accordance with your preferences thanks to the rich
and clear API.Kelluvuus - Own work
CC BY-SA 4.0
27. streamlit:軽量webアプリ作成ライブラリ
画像をダウン
ロード
RGBのヒストグ
ラムを計算
ラジオボダンで
RGBを選択 ローカルでアクセス
した画面
main.py
import numpy as np
import pandas as pd
import streamlit as st
from skimage.io import imread
# download the image
img_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/d
/df/Mount_Fuji_from_Mount_Aino.jpg/640px-Mount_Fuji_from_Mount_Ai
no.jpg'
im = imread(img_url)
st.image(im, caption='image from wikimedia commons’,
use_column_width=True)
# show histgram of all colors
hist_red, _ = np.histogram(im[:, :, 0], bins=64)
hist_green, _ = np.histogram(im[:, :, 1], bins=64)
hist_blue, _ = np.histogram(im[:, :, 2], bins=64)
hist = np.stack((hist_red, hist_green, hist_blue), axis=1)
df_hist = pd.DataFrame(hist, columns=['R', 'G', 'B'])
st.bar_chart(df_hist)
# choose one color
color = st.radio(
"choose R, G, or B",
('R', 'G', 'B'))
if color == 'R’:
df_hist = pd.DataFrame(hist_red)
st.bar_chart(df_hist)
if color == 'G’:
df_hist = pd.DataFrame(hist_green)
st.bar_chart(df_hist)
if color == 'B’:
df_hist = pd.DataFrame(hist_blue)
st.bar_chart(df_hist)
28. 29. 30. 31. 32. それをクローン
フォークした自分のリポ
ジトリのsshのURLを指
定してください
$ git clone git@github.com:tttamaki/show_img_hist.git
Cloning into 'show_img_hist'...
remote: Enumerating objects: 57, done.
remote: Counting objects: 100% (57/57), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 57 (delta 23), reused 45 (delta 12), pack-reused 0
Receiving objects: 100% (57/57), 6.35 KiB | 3.17 MiB/s, done.
Resolving deltas: 100% (23/23), done.
$ cd show_img_hist
$
自分でフォークしたリポジトリURL
33. まずはローカルで確認:build
$ docker compose build
[+] Building 28.0s (7/9)
[+] Building 60.9s (10/10) FINISHED
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 195B 0.0s
...
=> => exporting layers 4.3s
=> => writing image sha256:a405268705e58f85aa72ecda190e9b52fb6959cc422ae 0.0s
=> => naming to docker.io/library/show_img_hist_mypython 0.0s
$
34. 35. $ docker compose down
まずはローカルで確認:ブラウザでアクセス
ndockerfile内で「実行用ファイルをコ
ンテナ内の/root/にコピー」する
• デプロイを想定
• クラウドでは
「ローカルを/mnt/にマウント」
ができない
n実行コマンドはentrypointに記載
• up -dしたらこれが実行されている
n使用ポートは環境変数を利用
• コンテナ内では${PORT}を参照
• コンテナ起動時に設定する
http://localhost:8888/に
アクセスすればOK
止めるときには
ポート「8888」composeが使う環
境変数はファイル「.env」に書い
た番号
36. 起動の仕組み:コンテナ外のファイル
FROM python:slim
COPY requirements.txt /root/
RUN pip install -U pip ¥
&& pip install -r /root/requirements.txt
COPY main.py start.sh /root/
RUN chmod +x /root/start.sh
ENTRYPOINT [ "/root/start.sh" ]
services:
mypython:
build: ./
tty: true
environment:
PORT: ${PORT}
ports:
- "${PORT}:${PORT}"
dockerfile
docker-compose.yml
ローカルのファイルmain.pyを
コンテナ内の/root/にコピー
コンテナ内で使
用するポート
コンテナを起動した時
にコンテナ内で実行す
るコマンド
コンテナ内で使
用する環境変数
composeが使う環境変数は
ファイル「.env」に書く
PORT=8888
.env
streamlitの起動
はshスクリプ
トの中で
37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. APIキーとSecrets
n外部システムへのアクセス
• パスワードは入力したくない,他人にログインされたくない
• アクセス専用のパスワードみたいなものがあればよい:これがAPI key
nAPI keyをコードに書いてはダメ,絶対
• commitしてpushして公開してしまったら全世界からアクセスされてしまう
• 出前サービス「Wolt」のAndroidアプリに外部サービスのAPIキーがハードコードされている問題, 2023年3月14
日, インプレス窓の杜
• Android アプリ「Hulu」に外部サービスの API キーがハードコードされている問題, 2022年7月28日, Scan Net
Security
• 3200以上のモバイルアプリでAPIキー漏えい判明!Twitterアカウントの乗っ取りが可能に, 2022.08.03, カミアプ
nローカルなら
• 別ファイルに記載(.gitignoreでgit管理外)
• 環境変数から取得(~/.bashrcなどで設定)
• 専用のファイルに記載(例:~/.comet/configなど)
nクラウドは?:これがSecrets
55. 56. 57. 58. 59. 60. 61. 62. 63. 64. CIが失敗する場合
間違ったままコードをadd,
commit, pushしてみよう
(当然できてしまう)
$ git add main.py
$ git commit -m "commit with error"
[render_test c4401e4] fix error
1 file changed, 1 insertion(+), 1 deletion(-)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 293 bytes | 293.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/tttamaki/show_img_hist.git
094c181..c4401e4 render_test -> render_test
$
自分でフォークしたリポジトリURL
65. 66. 67. 68. 70. 71.