跳到主內容

Docker 各系統安裝

各系統安裝連結


 

Jenkins

Jenkins - Official Image | Docker Hub

jenkins/jenkins - Docker Image | Docker Hub

 

docker run -d	\
	-p 8080:8080 -p 50000:50000 \
	-v ~/jenkins/home:/var/jenkins_home \
    --name jenkins \
    jenkins/jenkins:lts

ps. jenkins 抓取一定要帶版號不然會報錯

jenkins Tags | Docker Hub

Using default tag: latest
Error response from daemon: manifest for jenkins:latest not found: manifest unknown: manifest unknown
docker pull jenkins/jenkins:lts

ps. 要安裝軟體需要使用root 登入

docker exec -u root -it jenkins sh
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
sudo chown -R 1000:1000 {mount jenkins home path}

ps.使用nginx revers proxy 現設定問題,需要設定 proxy_set_header

Reverse proxy configuration (jenkins.io)

server {
    listen       80;
    server_name  tomcat.srou.com;

    location / {
         sendfile off;
        proxy_pass   http://192.168.100.4:10031/;
        proxy_redirect     default;
        proxy_http_version 1.1;

        # Required for Jenkins websocket agents
        proxy_set_header   Upgrade           $http_upgrade;

        proxy_set_header   Host              $host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_max_temp_file_size 0;

        #this is the maximum upload size
        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffering            off;
        proxy_request_buffering    off; # Required for HTTP CLI commands
        proxy_set_header Connection ""; # Clear for keepalive
      
        
    }

}

 

gitlab

docker run -d \
	--name gitlab \
	-p 8080:80 -p 443:443 -p 22:22 \
    --privileged \
    --restart always \
    -v ~/gitlab/config:/etc/gitlab \
    -v ~/gitlab/logs:/var/log/gitlab \
    -v ~/gitlab/data:/var/opt/gitlab  \
    gitlab/gitlab-ce
 
-d : 讓容器(Container)在背景執行
--name : 指定容器(Container)的名稱
-p : 指定主端(Host)對應客端(Quest)的連接埠
--privileged : 容器(Container)内的 root 拥有真正的 root 权限
-restart : 設定為 restart,則容器在異常停止後,會自動重新起動
-v : 將容器(Container)內需永續保存的目錄,連結至主端的目錄

 docker-compose.yml 

docker-compose up -d
version: "3.6"
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    privileged: true
    ports:
      - '8080:80'
      - '443:443'
      - '22:22'
    volumes:
      - '~/gitlab/data:/var/opt/gitlab'
      - '~/gitlab/logs:/var/log/gitlab'
      - '~/gitlab/config:/etc/gitlab'

Tomcat

Docker部署tomcat出現404錯誤 - 台部落 (twblogs.net)

新版tomcat 不提供manager ,需手動複製,webapps.dist copy -> webapps


PostgresSQL

version: "3.7"
services:
    db:
        image: postgres:13.2-alpine
        restart: always
        environment:
            POSTGRES_DB: postgres
            POSTGRES_USER: $USER_NAME #postgres
            POSTGRES_PASSWORD: $PASSWORD #1234
            PGDATA: /var/lib/postgresql/data
        volumes:
            - db-data:/var/lib/postgresql/data
        ports:
            - "5432:5432"
    pgadmin:
        image: dpage/pgadmin4:latest
        restart: always
        environment:
            PGADMIN_DEFAULT_EMAIL: $USER_EMAIL #xxx@gmail
            PGADMIN_DEFAULT_PASSWORD: $PASSWORD #abcd
            PGADMIN_LISTEN_PORT: 80
        ports:
            - "8080:80"
        volumes:
            - pgadmin-data:/var/lib/pgadmin
        links:
            - "db:pgsql-server"
volumes:
    db-data:
    pgadmin-data: