發表於 程式分享

ubuntu上的docker內安裝Gitlab、Jenkins

這是我在ubuntu上的docker內安裝Gitlab、Jenkins的筆記,有興趣的請參考

1.安裝Gitlab

sudo mkdir -p /docker_data
sudo docker network create mycicd
docker network ls
docker run -d --name gitlab \
--hostname host.example.com \
-p 8088:8088 \
-p 8002:22 \
--network mycicd \
--privileged --restart always \
-v /docker_data/gitlab/data:/var/opt/gitlab \
-v /docker_data/gitlab/config:/etc/gitlab \
-v /docker_data/gitlab/logs:/var/log/gitlab \
gitlab/gitlab-ce

2.改GitLab設定

docker exec -it gitlab bash
vi /etc/gitlab/gitlab.rb
# external_url 'GENERATED_EXTERNAL_URL'
external_url 'http://host.example.com:8088'

# nginx['listen_port'] = nil
nginx['listen_port'] = 8088

# gitlab_rails['gitlab_shell_ssh_port'] = 22
gitlab_rails['gitlab_shell_ssh_port'] = 8002
docker restart gitlab
docker ps |grep gitlab

註: 若主機要連請在hosts檔加入host.example.com與IP對應

3.依網路上說http://host.example.com:8088可用root密碼登入
但我登不進去,最後就直接進入gitlab container改root密碼:
docker exec -it gitlab bash
進入container後
gitlab-rails console -e production
進入rail畫面

user = User.where(id: 1).first
user.password = '88888888'
user.password_confirmation = '88888888'
user.save
exit

4.安裝Jenkins
(1)設定路徑、檔案權限
mkdir -p /docker_data/jenkins/
chown -R 1000:1000 /docker_data/jenkins/
chmod 655 /root/.kube/config

(2)vi Dockerfile

FROM jenkins/jenkins:lts
USER root
RUN apt-get update \
&& apt-get install -y apt-utils \
&& apt-get install -y sudo \
&& apt-get install -y libltdl7 \
&& rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins

打包image : jenkins

docker build -t jenkins:sudo .

參考: https://hub.docker.com/r/jenkins/jenkins

(3)啟動Jenkins
vi jenkins.sh

docker run \
--name jenkins \
-d --restart always \
-p 8080:8080 -p 50000:50000 \
--network mycicd \
-v /etc/localtime:/etc/localtime:ro \
-v /docker_data/jenkins:/var/jenkins_home \
-v $(which docker):/usr/bin/docker \
-v $(which kubectl):/usr/bin/kubectl \
-v /root/.kube:/var/jenkins_home/.kube \
-v /var/run/docker.sock:/var/run/docker.sock \
-e JAVA_OPTS=-Duser.timezone=Asia/Taipei \
jenkins:sudo

執行以下指令啟動jenkins

chmod +x jenkins.sh
./jenkins.sh

查看啟動結果

docker exec -it jenkins bash
sudo docker ps
kubectl get nodes
kubectl run nginx --image=nginx

用瀏覽器查看http://host.example.com:8080/
其網站的初始密碼請查看此檔
cat /docker_data/jenkins/secrets/initialAdminPassword
帳密,Ex.
it / 8888

遇到的問題:
jenkins@0665230a6768:/$ docker ps
docker: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32′ not found (required by docker)
=> 查網路上的做法尚無解,先略過
https://www.cnblogs.com/kevingrace/p/8744417.html
https://blog.csdn.net/wangying202/article/details/113178159

1.安裝make、gcc
sudo apt-get update
sudo apt-get install make
sudo apt install build-essential
sudo apt-get install python3
sudo apt-get install python
sudo apt-get install gawk
sudo apt-get install bison

2.以下指令無法使用

sudo wget http://ftp.gnu.org/gnu/glibc/glibc-2.32.tar.gz
sudo tar -xvf glibc-2.32.tar.gz
cd glibc-2.32
sudo mkdir build
cd build
sudo ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
sudo make -j 8

參考: https://github.com/jenkinsci/docker/blob/master/README.md

發表留言