Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Хелло, докер ворлд!
Search
Alexander
November 09, 2018
Technology
1
63
Хелло, докер ворлд!
Поговорили о том, как поднять CI на локальной машине. И в чем польза для мобильного разработчика
Alexander
November 09, 2018
Tweet
Share
More Decks by Alexander
See All by Alexander
Во все тяжкие мобильных релизов
garf1eld
0
31
GraphQL: плюсы и минусы
garf1eld
0
460
Other Decks in Technology
See All in Technology
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
110
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
0
330
「Linux」という言葉が指すもの
sat
PRO
4
130
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
390
Agile PBL at New Grads Trainings
kawaguti
PRO
1
420
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
920
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
390
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
270
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
560
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
173
14k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Designing Experiences People Love
moore
142
24k
It's Worth the Effort
3n
187
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Designing for Performance
lara
610
69k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Building an army of robots
kneath
306
46k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Transcript
1 Александр Подлинов «Хелло, докер ворлд!»
План 2 Проблема Цель Решение Создание образа Запуск
Цель Запустить тесты 3
Мотивация 4 Автоматизация Тесты Анализаторы Сборка апк Отчеты Git
Проблема 5 Как поднять CI? Обычно мы этим не занимаемся
Культура
Докер 6 Контейнер Образ Реестр Простота эксплуатации
Образ 7 FROM RUN
FROM 8 FROM ubuntu:16.04
RUN 9 RUN apt-get update
Образ 10 FROM ubuntu:16.04 RUN apt-get update
Контейнер 11 ОС Пользовательские файлы Зависимости
Реестр aka Регистр 12 Хранилка образов
Реестр aka Регистр 13 docker pull repository/docker-android docker pull bitriseio/docker-android
Пример:
Установка www.docker.com 14
Установка 15 $ docker --version Docker version 18.06.1-ce, build e68fc7a
https://hub.docker.com/ 16
Как сделать свой первый образ https://hub.docker.com/ 17
Локальный образ 18 ОС Java SDK
Локальный образ 19 ОС - ubuntu FROM ubuntu:16.04 RUN apt-get
update
Локальный образ 20 Java
Локальный образ 21 Java RUN apt-get install default-jdk -y
Локальный образ 22 Java
.dockerignore 23 .local.properties
SDK 24 https://developer.android.com/studio/
SDK 25
26 GNU nano 2.0.6 File: Dockerfile FROM ubuntu:16.04 RUN apt-get
update RUN apt-get install default-jdk -y RUN java -version RUN apt-get install -y curl git zip unzip WORKDIR /usr/android/ # Set up environment variables ENV ANDROID_HOME="/usr/android/android-sdk-linux" ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" ENV GRADLE_URL="https://services.gradle.org/distributions/gradle-4.5.1-all.zip" # Download Android SDK RUN mkdir $ANDROID_HOME .android \ && cd $ANDROID_HOME \ && curl -o sdk.zip $SDK_URL \ && unzip sdk.zip \ && rm sdk.zip \ && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses
27 $ docker build . $ successfully built 1c2b799ad0d6 $
docker tag presentation_image:1 1c2b799ad0d6
Что на счет CI? https://hub.docker.com/r/jetbrains/teamcity-server/ 28 Инструкция $ docker pull
jetbrains/teamcity-agent $ docker pull jetbrains/teamcity-server
Что на счет CI? 29 $ docker images jetbrains/teamcity-agent latest
e86224af1f57 4 weeks ago 1.46GB jetbrains/teamcity-server latest 3f4d3b8ffc83 4 weeks ago 1.67GB
Поднимаем тимсити docker run -it --name teamcity-server-instance \ -v /Users/podlinov/tc_folder:/data/teamcity_server/datadir
\ -v /Users/podlinov/tc_folder:/opt/teamcity/logs \ -p 8080:8111 \ jetbrains/teamcity-server 30
Тимсити http://localhost:8080/ 31
Тимсити 32 From repository URL
Тимсити 33
Тимсити 34
Тимсити 35
Тимсити 36
Тимсити 37
Тимсити 38
Тимсити 39
Тимсити 40 https://hub.docker.com/r/jetbrains/teamcity-agent/ Инструкция
Тимсити 41 docker run -it -e SERVER_URL=localhost:8080 \ --net=host \
-v /Users/podlinov/tc_folder/agentconfig:/data/teamcity_agent/conf \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /Users/podlinov/tc_folder/agent_cfg/work:/opt/buildagent/work \ -v /Users/podlinov/tc_folder/agent_cfg/temp:/opt/buildagent/temp \ -v /Users/podlinov/tc_folder/agent_cfg/tools:/opt/buildagent/tools \ -v /Users/podlinov/tc_folder/agent_cfg/plugins:/opt/buildagent/plugins \ -v /Users/podlinov/tc_folder/agent_cfg/system:/opt/buildagent/system \ jetbrains/teamcity-agent
Агент 42
Агент 43
Советы - Запускать и собирать образы локально - Постараться создать
свои образы чтобы не полагаться на чужие - Исключать лишние зависимости 44
Спасибо 45
[email protected]