Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Docker in CI - Cacoo與Backlog導入Docker的經驗分享
Search
株式会社ヌーラボ
PRO
December 10, 2015
Technology
480
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker in CI - Cacoo與Backlog導入Docker的經驗分享
Presentation slides at
http://containersummit.ithome.com.tw/
株式会社ヌーラボ
PRO
December 10, 2015
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
製造業の設計・生産技術向け Backlog入門
nulabinc
PRO
0
20
配布資料_ヌーラボの情シスがおすすめする_問い合わせ対応を削減するBacklog活用術.pdf
nulabinc
PRO
0
120
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
3.2k
Getting Started with Bits Agent Builder: Real-World Use Cases
nulabinc
PRO
0
83
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
430
進化するBits AI SREと私と組織
nulabinc
PRO
4
1.3k
実践 Datadog MCP Server
nulabinc
PRO
4
1k
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
260
Datadog の RBAC のすべて
nulabinc
PRO
4
1k
Other Decks in Technology
See All in Technology
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
200
Browser Spec: Testing Hotwire with Ruby
takahashim
1
130
Metadata - Section 1: HTML Basics
mohab1
0
120
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
パッチ更新でterraform initが落ちた日
grimoh
1
140
会社説明資料
persolserverworks
0
9.8k
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
1k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
440
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
120
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
200
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
25k
30 Presentation Tips
portentint
PRO
1
430
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
Become a Pro
speakerdeck
PRO
31
6.3k
Why Our Code Smells
bkeepers
PRO
340
58k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Faster Mobile Websites
deanohume
310
32k
Transcript
None
https://www.flickr.com/photos/dahlstroms/3144199355 %PDLFSJO$* $BDPPᢛ#BDLMPHಋೖ%PDLFSతៃᱛڗ
છాوࢤ 40.&%"5BLBTIJ (SPXUI)BDLFS!/VMBC*OD
$PMMBCPSBUJWF"QQ.BLFS IUUQTOVMBCJODDPN
֨ᒜ #BDLMPH 1SPKFDUNBOBHFNFOUUPPMPWFS DPNQBOJFTVTF IUUQCBDLMPHUPPMDPNUX
-PPLJOHGPS5BJXBOFTF&OHJOFFS IUUQTOVMBCJODDPNDBSFFSTPGUXBSFFOHJOFFSCBDLMPH
$BDPP .VTFSTBSPVOEUIFXPSME ,VTFSTJO5BJXBO ESBXEJBHSBNTPO$BDPP IUUQTDBDPPDPNMBOH[I@UX
5ZQFUBML $PMMBCPSBUJWFEJTDVTTJPOUPPM IUUQTXXXUZQFUBMLJO
2VFTUJPO
6TFDBTFPG%PDLFSJO$* • 6TJOH%PDLFSGPS+PC&YFDVUJPO • 6TJOH%PDLFSGPS$*$MVTUFS
'PDVTJOUIJTUBML • 6TJOH%PDLFSGPS+PC&YFDVUJPO • 6TJOH%PDLFSGPS$*$MVTUFS
"HFOEB /VMBC%FWFMPQNFOU0WFSWJFX 6TF$BTFJO$* 4VNNBSZ
/VMBC%FWFMPQNFOU0WFSWJFX
5FDIOPMPHZ.BUSJY
%FMJWFSZ0WFSWJFX
%FMJWFSZ0WFSWJFX
+FOLJOT+PCT • 3VOUFTU • #VJMEBSUJGBDU • 6QMPBEBSUJGBDUUP4 • 6QMPBETUBUJDpMFUP4 •
$SFBUF".* • %FQMPZBSUJGBDU
/VNCFSPG+PCT • $POpHVSFE+PCT • +PCTSVOOJOHFWFSZEBZ NBJOMZSVOOJOHJOEBZUJNF
l1VMM3FRVFTUz#BTFE%FWFMPQNFOU
#SBODIJOH.PEFMJO/VMBC
%FWFMPQNFOU'MPX • #SBODIDSFBUFEGPSCPUICVHpYBOE OFXGFBUVSF • $SFBUF1VMM3FRVFTU 13 BGUFSXPSL JTEPOF •
3FMFBTFlUBHHFEzSFWJTJPOJONBTUFS CSBODI
l5BHz5SJHHFSFE"SDIJWJOH
$IBU0QTGPS%FMJWFSZ
+FOLJOT5ZQFUBML1MVHJO IUUQTXJLJKFOLJOTDJPSHEJTQMBZ+&/,*/45ZQFUBML 1MVHJO
%FQMPZNFOU'MPX • "EEUBHUPTUPSFBQQMJDBUJPOUP4 • 4BZlEFQMPZDPNNBOEzJO5ZQFUBML • +FOLJOT5ZQFUBML1MVHJOEJSFDUMZLJDLT +FOLJOT+PCUPEFQMPZ
6TF$BTFJO$*
$*&OWJSPONFOU0WFSWJFX
+FOLJOT#BDLMPH1MVHJO IUUQTXJLJKFOLJOTDJPSHEJTQMBZ+&/,*/4#BDLMPH 1MVHJO
*TTVFTJO$* • 5PPNBOZCSBODIFTUPUFTU • 13SFRVJSFTUFTUQBTTFECFGPSFSFWJFX • .PSFEFWFMPQFST NPSFCSBODIFT • 7BSJPVTUFTUFOWJSPONFOUSFRVJSFE
• %J⒎FSFOUWFSTJPOTPGNJEEMFXBSFBOEUPPMT • 4IPVMECFJOEFQFOEFOUCBTJDBMMZ
*TTVFTJO$* • 4MPXUFTU • 5FTUIBTUPXBJUGPSSVOVOUJMUFTU FOWJSPONFOUPDDVQJFEXJUIPUIFSUFTU CFDPNFTBWBJMBCMF • )BSEUPNBOBHFTMBWFT •
.FTTZDPOpHVSBUJPOEJTBCMFTVTUP CPPUTUSBQOFXTMBWFRVJDLMZBOEHJWFVQ UFTUJOHGPSTPNFCSBODIFT
)FSF`T%PDLFS
)PX%PDLFSTPMWFTJTTVFT • 5PPNBOZCSBODIFTUPUFTU • 3VOOJOHUFTUGPSCSBODIJOJUTPXO%PDLFS DPOUBJOFSBMMPXTUPSVOUFTUTJOQBSBMMFM • 7BSJPVTUFTUFOWJSPONFOUSFRVJSFE • /FFEUPJOTUBMMPOMZ%PDLFSJOUPTMBWFT
XIFOZPVOFFENPSFSFTPVSDFTGPSUFTUJOH
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
4UFQTUP4UBSU4MBWF IUUQTXJLJKFOLJOTDJPSHEJTQMBZ+&/,*/4"NB[PO &$ 1MVHJO
#FOFpUPG4JNQMF4MBWF4FUVQ • #PPUTUSBQOFXTMBWFRVJDLMZ • &OBCMFUPSVOKPCTBOZXIFSF%PDLFS JTSVOOJOH
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
+PC$POpHVSBUJPO $ ./gradlew clean test –Penv=ci $ docker run <run
option> test-image ./gradlew clean test
3VO.VMUJ1SPDFTTFTJO4JOHMF$POUBJOFS # Dockerfile # install package required for test RUN
apt-get install –y redis-server # Test Configuration in Jenkins $ docker run test-image bach –c “service redis-server start ; ./ gradlew clean test” • 0OMZTJOHMF%PDLFSpMFSFRVJSFE • 3VOUFTUXJUITBNFTFUUJOHJOMPDBM
%PDLFS$PNQPTFWT4JOHMF%PDLFSpMF • +VTUGPSUFTUJOHQVSQPTF 4JOHMF %PDLFSpMFJTFOPVHIJONBOZDBTFT • *G%PDLFSpMFXJMMCFSFVTFEGPSPUIFS QVSQPTF %PDLFS$PNQPTFDPVMECF CFUUFS
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
*OIPVTF3FHJTUSZBT*NBHF$BDIF
%FQFOEFODZ$BDIFr)PTU%JSFDUPSZ
%FQFOEFODZ$BDIFr)PTU%JSFDUPSZ $ docker run –v ${HOME}/.gradle:/root/.gradle test-image <test command> •
)PTUEJSFDUPSZBTDBDIF • 1SPTTIBSFDBDIFXJUIPUIFSKPCT • $POTQFSNJTTJPOJTTVF
%FQFOEFODZ$BDIFr$BDIFJOBEWBODF
%FQFOEFODZ$BDIFr$BDIFJOBEWBODF # Dockerfile RUN mkdir -p /opt/local/app COPY requirements.txt /opt/local/app/
WORKDIR /opt/local/app RUN pip install -r requirements.txt COPY . /opt/local/app $ docker build –t test-image . $ docker run test-image <test command> %FQFOEFODZVQEBUF IBQQFOT/05TPPGUFO UIBOBQQMJDBUJPODPEF
%FQFOEFODZ$BDIFr$BDIFJOBEWBODF • *OTUBMMEFQFOEFODZJOBEWBODF • 1SPTOPQFSNJTTJPOJTTVF • $POTBMMDBDIFDMFBSFEJOEFQFOEFODZ DIBOHF
%FQFOEFODZ$BDIFr&YUFSOBM$BDIF
%FQFOEFODZ$BDIFr&YUFSOBM$BDIF # Dockerfile RUN mkdir /root/.gradle RUN cd /root/.gradle; curl
-skL https://s3-ap- northeast-1.amazonaws.com/<cache-bucket>/cache.20151201.tar.gz | tar zxf - • &YUFSOBMDBDIF • 1SPTGBTUFSJOJUJBMJOTUBMMBUJPO • $POTNBJOUBJOFYUFSOBMDBDIF
%FQFOEFODZ$BDIF4USBUFHZ )PXUPDBDIF 1SPT $POT 1SPKFDUXFVTF )PTU%JSFDUPSZ 8IFOSVOOJOH UFTU NPVOUIPTU EJSFDUPSZUP
DPOUBJOFSBOE TUPSFEFQFOEFOU MJCSBSJFTUIFSF 4IBSFMJCSBSJFT BNPOHQSPKFDUT BOETNBMM EFQFOEFODZ DIBOHFEPFTO`U JNQBDUTPNVDI 1FSNJTTJPOJTTVF DPVMEIBQQFOJG UFTUTIPVMECF SVOCZOPOSPPU VTFS +BWB 4DBMB .BWFO (SBEMF TCU $BDIFJO BEWBODF $SFBUFMPDBMJNBHF XJUIJOTUBMMJOH EFQFOEFOU MJCSBSJFTCFGPSF UFTUJOH /PQFSNJTTJPO JTTVF 8IFO EFQFOEFODZ DIBOHFE BMM DBDIFXJMMCF DMFBSFE 1FSM 1ZUIPO OPEFKT &YUFSOBM$BDIF $SFBUFDBDIF BSDIJWFBOETBWF JUUPFYUFSOBM TUPSBHFMJLF4 BOEEPXOMPBEJU XIFOSVOOJOHUFTU 'BTUFSJOJUJBM JOTUBMMBUJPO DPNQBSFEUP MFUUJOHCVJMEUPPM UPSFTPMWF EFQFOEFODJFT /FFEUPNBJOUBJO FYUFSOBMDBDIF QSPQFSMZUPLFFQ QFSGPSNBODF 4DBMB TCU
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
3FUSJFWF#VJME3FTVMU
3FUSJFWF#VJME3FTVMU # Dockerfile WORKDIR /opt/app $ docker run --rm –v
$(pwd):/opt/app test-image <test command> • .PVOUXPSLTQBDFUPDPOUBJOFS • 1SPTSFNPWFDPOUBJOFSTPPOBGUFSUFTU • $POTQFSNJTTJPOJTTVF
1FSNJTTJPO*TTVFPG)PTU%JSFDUPSZ • *OTPNFDBTF UFTUTIPVMECFSVOCZOPO SPPUVTFS • 0XOFSPGIPTUEJSFDUPSZJOTJEFDPOUBJOFS JTJOEFpOJUF • 8SJUJOHCVJMESFTVMUUPIPTUEJSFDUPSZCZ
OPOSPPUVTFSDBOGBJM
8PSLBSPVOE • 8SJUFSFTVMUUPBWBJMBCMFEJSFDUPSZGPS OPOSPPUVTFS • $PQZJUUPIPTUEJSFDUPSZCZSPPU # run.sh su test-user
–c “py.test tests –-junit-xml=/var/tmp/results.xml” cp –p /var/tmp/results.xml . $ docker run --rm –v $(pwd):/opt/app test-image ./run.sh
8PSLBSPVOE • $IBOHFPXOFSTIJQUPOPOSPPUVTFS EVSJOHCVJMEUJNF # run.sh chown test-user . su
test-user –c “py.test tests” chown $1 . $ docker run --rm –v $(pwd):/opt/app test-image ./run.sh $(id -u)
3FUSJFWF#VJME3FTVMU BMU # Dockerfile WORKDIR /opt/app COPY . /opt/app
$ UNIQUE_NAME=“TEST_${GIT_COMMIT}_$(date +%s)” $ docker run --name=${UNIQUE_NAME} test-image <test command> $ docker cp ${UNIQUE_NAME}:/opt/app/build/test-result/ test-result $ docker rm ${UNIQUE_NAME} • $PQZCVJMESFTVMUGSPNDPOUBJOFS • 1SPTOPQFSNJTTJPOJTTVF • $POTDPNQMJDBUFE
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
6QMPBE"SDIJWFUP4 • 6QMPBEBQQMJDBUJPOBSDIJWFUP4GPSGVUVSF EFQMPZ • "84TUBOEBSEUPPMJOTUBMMFEJO"NB[PO-JOVY CZEFGBVMU • 6QMPBETUBUJDSFTPVSDFT JNBHF
TDSJQU DTT XJUIJOBSDIJWFUP4GPS$%/EFMJWFSZ • *OIPVTFVQMPBEJOHUPPM
%PDLFSOJ[FJOIPVTFVQMPBEJOHUPPM $ /usr/local/bin/upload-static-s3 ROOT.war –b <cdn-bucket> # Dockerfile ENTRYPOINT [“/usr/local/bin/upload-static-s3”]
$ docker run --rm <in-house-registory>/upload-static-s3 ROOT.war – b <cdn-bucket>
#VJME5JNF5SFOE
8IPMF$*QSPDFTTQPSUBCMF
4VNNBSZ
-FTTPO-FBSOFE • $*NFFUTQSPCMFNTMJLF • 5PPNBOZCSBODIFTUPUFTU • $PNQMJDBUFEUFTUJOHFOWJSPONFOU • %PDLFSDBOTPMWFUIFNF⒏DJFOUMZ
,FZ1PJOUTUPVTF%PDLFSJO$* • 4FUVQTMBWF • 4JNQMJGZUFTU • "DDFMFSBUFUFTU • 3FUSJFWFCVJMESFTVMU •
6QMPBEBSDIJWF
1SPEVDUJPO6TF$BTFJO+BQBO
%PDLFSJO$* • (PPEQMBDFUPTUBSU%PDLFS • $*CFDPNFTDPNNPOQSBDUJDF • *OTUBMMJOH%PDLFSJO$*EPFTO`UDIBOHF NBOZUIJOHT • 8FDPVMEIBWFCFTUQSBDUJDFJOUIJTBSFB
IUUQTXXXEPDLFSDPNQSPEVDUTVTFDBTFT
None