Slide 1

Slide 1 text

͍·͔ΒDockerͰ࢝ΊΔ GitLab CE #gitlabjp 2017/9/19 GitLab Meetup Fukuoka #1 1

Slide 2

Slide 2 text

৿ా๜༟ גࣜձࣾΦϧλʔϒʔε ιϦϡʔγϣϯΞʔΩςΫτ @morita92hiro http://hawaku.hateblo.jp 2017/9/19 GitLab Meetup Fukuoka #1 2

Slide 3

Slide 3 text

About GitLab GitLab unifies issues, code review, CI and CD into a single UI — https://about.gitlab.com 2017/9/19 GitLab Meetup Fukuoka #1 3

Slide 4

Slide 4 text

Products 2017/9/19 GitLab Meetup Fukuoka #1 4

Slide 5

Slide 5 text

GitLab CE/EE1 ηϧϑϗεςΟϯά » Community Edition (CE) <- ࠓ೔͸͜ͷ࿩ » Enterprise Edition (EE) » Starter (EES) » Premium (EEP) 1 https://about.gitlab.com/products/ 2017/9/19 GitLab Meetup Fukuoka #1 5

Slide 6

Slide 6 text

GitLab.com2 SaaS » Free (EES૬౰) » Bronze » Silver » Gold 2 https://about.gitlab.com/gitlab-com/ 2017/9/19 GitLab Meetup Fukuoka #1 6

Slide 7

Slide 7 text

2017.1.຤೔ 2017/9/19 GitLab Meetup Fukuoka #1 7

Slide 8

Slide 8 text

2017/9/19 GitLab Meetup Fukuoka #1 8

Slide 9

Slide 9 text

ʊਓਓਓਓਓਓʊ ʼɹಥવͷࢮɹʻ ʉY^Y^Y^Y^Yʉ 2017/9/19 GitLab Meetup Fukuoka #1 9

Slide 10

Slide 10 text

ϫΠແࣄࢮ๢! 2017/9/19 GitLab Meetup Fukuoka #1 10

Slide 11

Slide 11 text

ࢮ๢ʁ » ݸਓతʹAnsibleపఈೖ໳ͷݪߘΛ؅ཧ͍ͯͨ͠ ޾͍ʹ΋ » ࠷৽σʔλ͸ϩʔΧϧʹ࢒͍ͬͯͨ » ෮چΛԹ͔͍໨ͰݟΕͨ 2017/9/19 GitLab Meetup Fukuoka #1 11

Slide 12

Slide 12 text

ͦͷ࿩͸ஔ͍ͱ͍ͯ 2017/9/19 GitLab Meetup Fukuoka #1 12

Slide 13

Slide 13 text

GitLab CEͷ͓࿩΁ 2017/9/19 GitLab Meetup Fukuoka #1 13

Slide 14

Slide 14 text

GitLab CE Features1 » Built-in CI/CD » Cycle Analytics » Issue Boards » Time tracking » Preview your changes with Review Apps » Publish static websites for free with GitLab Pages 1 https://about.gitlab.com/products/ 2017/9/19 GitLab Meetup Fukuoka #1 14

Slide 15

Slide 15 text

GitLab Install3 3 https://about.gitlab.com/installation/ 2017/9/19 GitLab Meetup Fukuoka #1 15

Slide 16

Slide 16 text

Install Methods » apt / yum » Docker <- ࠓ೔͸͜ͷ࿩ » Azure VM / AWS AMI / GCP VM » ͘͞ΒͷVPSʮελʔτΞοϓεΫϦϓτʯ<- NEW4 » Ansible Playbook » ͳͲͳͲ 4 https://vps-news.sakura.ad.jp/2017/08/29/startup-gitlab/ 2017/9/19 GitLab Meetup Fukuoka #1 16

Slide 17

Slide 17 text

Omnibus package installation » ਪ঑ » GitLabશ෦ » ඞཁΞϓϦέʔγϣϯ(Ruby, Nginx, PostgreSQLͳͲ)ಉࠝ 2017/9/19 GitLab Meetup Fukuoka #1 17

Slide 18

Slide 18 text

Docker Image5 » Offical » GitLab CE » GitLab EE » GitLab Runner » based on the Omnibus package 5 https://docs.gitlab.com/ce/install/docker.html 2017/9/19 GitLab Meetup Fukuoka #1 18

Slide 19

Slide 19 text

Docker Run 2017/9/19 GitLab Meetup Fukuoka #1 19

Slide 20

Slide 20 text

docker run -d \ -h gitlab.example.com \ -p 80:80 -p 443:443 \ --name gitlab \ --restart always \ -v $PWD/gl_env/etc/gitlab/:/etc/gitlab \ -v $PWD/gl_env/var/log/gitlab:/var/log/gitlab \ -v $PWD/gl_env/var/opt/gitlab:/var/opt/gitlab \ gitlab/gitlab-ce:latest 2017/9/19 GitLab Meetup Fukuoka #1 20

Slide 21

Slide 21 text

ઃఆ มߋ docker exec -it gitlab vim /etc/gitlab/gitlab.rb ൓ө docker restart gitlab 2017/9/19 GitLab Meetup Fukuoka #1 21

Slide 22

Slide 22 text

Docker Compose 2017/9/19 GitLab Meetup Fukuoka #1 22

Slide 23

Slide 23 text

version: '2' services: gitlab: image: "gitlab/gitlab-ce:latest" restart: always hostname: "gitlab.example.com" environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.example.com' gitlab_rails['gitlab_shell_ssh_port'] = 22 ports: - "80:80" - "22:22" volumes: - "./gl_env/etc/gitlab:/etc/gitlab" - "./gl_env/var/log/gitlab:/var/log/gitlab" - "./gl_env/var/opt/gitlab:/var/opt/gitlab" 2017/9/19 GitLab Meetup Fukuoka #1 23

Slide 24

Slide 24 text

ϙʔτ൪߸ » HTTP(80) » HTTPS(443) » SSH(22) 2017/9/19 GitLab Meetup Fukuoka #1 24

Slide 25

Slide 25 text

ϙʔτมߋ6 HTTP(S) external_url 'http://gitlab.example.com:8080' external_url 'https://gitlab.example.com:8443' SSH gitlab_rails['gitlab_shell_ssh_port'] = 2224 6 https://docs.gitlab.com/omnibus/docker/README.html#install-gitlab-using-docker-compose 2017/9/19 GitLab Meetup Fukuoka #1 25

Slide 26

Slide 26 text

version: '2' services: gitlab: image: "gitlab/gitlab-ce:latest" restart: always hostname: "gitlab.example.com" environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com:8443' gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - "8443:8443" - "2224:22" volumes: - "./gl_env/etc/gitlab:/etc/gitlab" - "./gl_env/var/log/gitlab:/var/log/gitlab" - "./gl_env/var/opt/gitlab:/var/opt/gitlab" 2017/9/19 GitLab Meetup Fukuoka #1 26

Slide 27

Slide 27 text

GitLab Runner 2017/9/19 GitLab Meetup Fukuoka #1 27

Slide 28

Slide 28 text

http://www.slidedeck.io/codethebuild/slides 2017/9/19 GitLab Meetup Fukuoka #1 28

Slide 29

Slide 29 text

version: '2' services: gitlab: ʙলུʙ runner: image: gitlab/gitlab-runner:latest restart: always volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./gl_env/etc/gitlab-runner:/etc/gitlab-runner" 2017/9/19 GitLab Meetup Fukuoka #1 29

Slide 30

Slide 30 text

ઃఆ11 docker exec -it gitlab_runner_1 gitlab-runner register 11 https://docs.gitlab.com/runner/register/#docker 2017/9/19 GitLab Meetup Fukuoka #1 30

Slide 31

Slide 31 text

͋ͱ͸ɺ͜ΕΛ͜͏ͯ͠… » Container Registory7 » SMTP (SendGrid)8 » OAuth (AzureAD)9 9 https://docs.gitlab.com/ce/integration/azure.html 8 https://docs.gitlab.com/omnibus/settings/smtp.html 7 https://docs.gitlab.com/ce/administration/container_registry.html#configure-container-registry-under-an- existing-gitlab-domain 2017/9/19 GitLab Meetup Fukuoka #1 31

Slide 32

Slide 32 text

͜͏͡Όʂ 2017/9/19 GitLab Meetup Fukuoka #1 32

Slide 33

Slide 33 text

Multi Sites 2017/9/19 GitLab Meetup Fukuoka #1 33

Slide 34

Slide 34 text

Nginx Proxy10 + Let's Encrypt 10 https://docs.gitlab.com/omnibus/settings/nginx.html#change-the-default-proxy-headers 2017/9/19 GitLab Meetup Fukuoka #1 34

Slide 35

Slide 35 text

·ͱΊ » ߏங͸apt / yum, DockerͰ؆୯ » Ξοϓσʔτ͸Dockerӡ༻ͷํָ͕ » ηϧϑϗεςΟϯά͸GitLab-CE/EE » ϗεςΟϯάෆཁͳΒSaaSͷGitLab.comָ͕ » 1ͭͷUIͰIssusɺίʔυϨϏϡʔɺContainer Registory, CI/CDΛ ؅ཧͰ͖ΔͷͰָ 2017/9/19 GitLab Meetup Fukuoka #1 35

Slide 36

Slide 36 text

͓ΘΓ 2017/9/19 GitLab Meetup Fukuoka #1 36