1. 程式人生 > 實用技巧 >harbor(私有dockerhub) gitlab Jenkins nginx 搭建日記

harbor(私有dockerhub) gitlab Jenkins nginx 搭建日記

我都是在docker的基礎上搭建的,前提安裝docker 和 docker-compose
安裝docker省略掉
docker-compose安裝

curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version

1.harbor下載

  tar -xvf harbor-offline-installer-v2.1.0.tgz
  cd harbor
  cp harbor.yml.tmpl harbor.yml
  vi harbor.yml 
   #修改以下內容
   hostname = 127.0.0.1 #設定啟動ip,如果是外網訪問需要設定外網ip
   port: 80 #埠
   harbor_admin_password = admin #設定admin使用者的密碼
   data_volume: /data/harbor     #設定儲存位置
 #然後儲存後開始構建
    ./prepare
    ./install.sh 
     docker ps #看看有沒有啟動成功

2.安裝gitlab 編寫docker-compose 執行GITLAB_OMNIBUS_CONFIG配置參照官網

gitlab:
  image: "gitlab/gitlab-ce:latest"
  restart: always
  hostname: "gitlab.dust.com"
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://gitlab.dust.com:8929'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      gitlab_rails['smtp_enable'] = true
      gitlab_rails['smtp_address'] = 'smtp.qq.com'
      gitlab_rails['smtp_port'] = 465
      gitlab_rails['smtp_user_name'] = '****@qq.com'
      gitlab_rails['smtp_password'] = 'elpukadqpvyfebhe'
      gitlab_rails['smtp_domain'] = 'qq.com'
      gitlab_rails['smtp_authentication'] = 'login'
      gitlab_rails['smtp_enable_starttls_auto'] = true
      gitlab_rails['smtp_tls'] = true
      gitlab_rails['gitlab_email_from'] = '****@qq.com' 
      alertmanager['admin_email'] = '****@outlook.com'
  ports:
    - "8929:8929"
    - "2224:22"
  volumes:
    - "/data/gitlab/config:/etc/gitlab"
    - "/data/gitlab/logs:/var/log/gitlab"
    - "/data/gitlab/data:/var/opt/gitlab"

3.安裝Jenkins

  docker container run \
  --name jenkins-blueocean \
  --detach \
  --network jenkins \
  --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client \
  --env DOCKER_TLS_VERIFY=1 \
  --publish 8085:8080 \
  --publish 8086:50000 \
  --volume /data/jenkins-data:/var/jenkins_home \
  --volume /data/jenkins-docker-certs:/certs/client:ro \
  jenkinsci/blueocean

 #設定資料夾的許可權
  chown -R 1000 /data/jenkins-data
  chown -R 1000 /data/jenkins-docker-certs
 
 #重啟容器
  docker stop jenkins-blueocean
  docker start jenkins-blueocean

4.nginx 部署

docker run -d  --name nginx -p 80:80 -p 443:443 nginx
檢視存放目錄docker exec -it nginx /bin/bash
日誌檔案位置:/var/log/nginx
配置檔案位置: /etc/nginx
資源存放的位置: /usr/share/nginx/html
docker cp  nginx:/var/log/nginx $pwd/logs
docker cp  nginx:/etc/nginx $pwd/conf
docker cp  nginx:/usr/share/nginx/html $pwd/html

docker stop nginx
docker rm nginx

docker run -d --name nginx -p 80:80 -p 443:443 \
-v $pwd/conf:/etc/nginx \
-v $pwd/html:/usr/share/nginx/html \ 
-v $pwd/logs:/var/log/nginx \ 
nginx