Jenkins + Docker

Andrew Chen
靠der Cowder
Published in
2 min readJan 5, 2016

管家與碼工的日常

  • Master/Slave
  • Host volume

Install Docker with compose for ubuntu 14.04

wget -qO- https://get.docker.com/ | sh

授權使用者:

sudo usermod -aG docker andrew

Master 管家

啟動官方 jenkins docker:

docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins

Slave 安卓僕人

僕人的特長要自己準備

FROM yongjhih/ubuntu-jenkins

ENV DEBIAN_FRONTEND noninteractive

USER root

RUN rm /bin/sh && ln -s /bin/bash /bin/sh

RUN apt-get update && apt-get install -y wget git curl zip software-properties-common && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

RUN add-apt-repository ppa:ubuntu-desktop/ubuntu-make
RUN apt-get update && apt-get install -y ubuntu-make

RUN umake android android-sdk --accept-license ~/.local/share/umake/android/android-sdk

ENV ANDROID_HOME /root/.local/share/umake/android/android-sdk
ENV PATH $ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH

RUN echo "y" | android update sdk -u -a --filter platform-tools,android-23,build-tools-23.0.1,extra-android-support,extra-android-m2repository,extra-google-google_play_services

RUN curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo
RUN chmod a+x /usr/local/bin/repo

USER jenkins

continue…

android tool 番外篇

套件識別名稱列表:

android list sdk -e

常見套件識別名稱:

  • platform-tools
  • android-23
  • build-tools-23.0.1
  • extra-android-support
  • extra-android-m2repository
  • extra-google-google_play_services

Jenkins 搬遷番外篇 1

Proxy 番外篇 2

~/.bashrc

export PROXY=http://192.168.1.2:3128/
export http_proxy=http://192.168.1.2:3128/
export https_proxy=https://192.168.1.2:3128/

/etc/apt/apt.conf.d/77proxy

Acquire::http::Proxy “http://192.168.1.2:3128";

/etc/default/docker

export http_proxy='http://192.168.1.2:3128/'

/etc/squid3/squid.conf

acl localnet src 192.168.0.0/16
# ...
http_access allow localnet
# ...
delay_pools 2
delay_class 1 2
delay_access 1 allow localnet
delay_parameters 1 256000/256000 256000/256000
http_port 3128 transparent

~/.android/androidtool.cfg

http.proxyHost=192.168.1.2
http.proxyPort=3128

Http Transparent Proxy 番外篇

iptables -t nat -D OUTPUT -p tcp — dport 80 -j DNAT — to 192.168.1.2:3128

NAT 番外篇

發現太多地方要設定 proxy 所以直接改用 nat 。

Server:

iptables -t nat -A POSTROUTING -s 192.168.1.3 -o eth1 -j MASQUERADE

Client:

route add default gw 192.168.1.2

Ref.

--

--