Docker环境使用Jenkins构建自动化项目Author: Lance Ma Date: 2021, 02-18 22:35:42 Category: DevOps 实例方法123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135// docker-compose.ymlversion: '3'networks: default: driver: bridge ipam: driver: default config: - subnet: 192.168.5.0/20services: nginx: build: context: ./services/nginx args: NGINX_VERSION: nginx:${NGINX_VERSION} CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} NGINX_INSTALL_APPS: ${NGINX_INSTALL_APPS} container_name: nginx-${NGINX_VERSION} ports: - "${NGINX_HTTP_HOST_PORT}:80" - "${NGINX_HTTPS_HOST_PORT}:443" volumes: - ${WEB_APP_SOURCE_DIR}:/wwwroot:rw - ${SOURCE_DIR}:/www/:rw - ${NGINX_SSL_CERTIFICATE_DIR}:/ssl:rw - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro - ${NGINX_FASTCGI_PHP_CONF}:/etc/nginx/fastcgi-php.conf:ro - ${NGINX_FASTCGI_PARAMS}:/etc/nginx/fastcgi_params:ro - ${NGINX_LOG_DIR}:/var/log/nginx/:rw environment: TZ: "$TZ" restart: always networks: - default jenkins: image: jenkins/jenkins volumes: - ${WEB_APP_SOURCE_DIR}:/data/www:rw - $PWD/services/jenkins:/var/jenkins_home expose: - 8080 - 50000 privileged: true user: root restart: always container_name: jenkins environment: TZ: Asia/Shanghai networks: - default php: build: context: ./services/php args: PHP_VERSION: php:${PHP_VERSION}-fpm-alpine CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} PHP_EXTENSIONS: ${PHP_EXTENSIONS} TZ: "$TZ" container_name: php-${PHP_VERSION} expose: - 9501 extra_hosts: - "www.lancema.com:172.17.0.1" volumes: - ${SOURCE_DIR}:/www/:rw - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini:ro - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw - ${PHP_LOG_DIR}:/var/log/php - ${DATA_DIR}/composer:/tmp/composer restart: always cap_add: - SYS_PTRACE networks: - default mysql: image: mysql:${MYSQL_VERSION} container_name: mysql-${MYSQL_VERSION} ports: - "${MYSQL_HOST_PORT}:3306" volumes: - ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro - ${DATA_DIR}/mysql:/var/lib/mysql/:rw restart: always networks: - default environment: MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}" TZ: "$TZ" redis: image: redis:${REDIS_VERSION} container_name: redis-${REDIS_VERSION} ports: - "${REDIS_HOST_PORT}:6379" volumes: - ${REDIS_CONF_FILE}:/etc/redis.conf:ro - ${DATA_DIR}/redis:/data/:rw restart: always entrypoint: ["redis-server", "/etc/redis.conf"] environment: TZ: "$TZ" networks: - default phpmyadmin: image: phpmyadmin/phpmyadmin:latest container_name: phpmyadmin ports: - "${PHPMYADMIN_HOST_PORT}:80" volumes: - ${PHPMYADMIN_USER_CONF_FILE}:/etc/phpmyadmin/config.user.inc.php:ro - ${PHPMYADMIN_PHP_CONF_FILE}:/usr/local/etc/php/conf.d/php-phpmyadmin.ini:ro networks: - default environment: - PMA_HOST=mysql - PMA_PORT=3306 - TZ=$TZ phpredisadmin: image: erikdubbelboer/phpredisadmin:latest container_name: phpredisadmin ports: - "${REDISMYADMIN_HOST_PORT}:80" networks: - default environment: - REDIS_1_HOST=redis - REDIS_1_PORT=6379 - TZ=$TZ1234567891011121314151617181920212223242526272829303132333435363738#server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /ssl/jenkins.baidu.com/jenkins.baidu.com.pem; ssl_certificate_key /ssl/jenkins.baidu.com/jenkins.baidu.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; add_header Strict-Transport-Security max-age=15768000; ssl_stapling on; ssl_stapling_verify on; server_name jenkins.baidu.com; if ($ssl_protocol = "") { return 301 https://$host$request_uri ; } if ($host != jenkins.baidu.com) { return 301 $scheme://jenkins.baidu.com$request_uri ; } #error_page 404 /404.html; #error_page 502 /502.html; root /wwwroot/jenkins.baidu.com; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for; }} 自动化配置12345678910111213141516171819pwdproject_name='jenkins.baidu.com'node -vnpm install -g yarn -registry=https://registry.npm.taobao.orgyarn -vyarn install --pure-lockfileyarn buildtar -zcvf ./$project_name.tar.gz -C ./dist/ .mv ./$project_name.tar.gz /data/wwwcd /data/www/if [ ! -d "$project_name" ];then mkdir $project_nameelse rm -rf $project_name/*fitar -zxvf ./$project_name.tar.gz -C $project_namerm -rf ./$project_name.tar.gzAuthor: 蓝思同学Permalink: https://www.lancema.com/devops/20210218/2021-devops-docker-huan-jing-shi-yong-jenkins-gou-jian-zi-dong-hua-xiang-mu.htmlSlogan: small is beautiful, small is powerful !Tag(s): # docker # Jenkins # 自动化back · home免费公共DNS整理与收集(持续更新) PHP 高效的树形菜单结构(无线分类)