docker-compose-boilerplate

基于docker-compose实现nginx+php开发测试环境快速部署方案

Stars
20
Committers
1

docker-compose-boilerplate


  1. nginx+php
  2. Dockerdocker-composeK8S
  3. Dockerjenkins
  4. orDockercase

DevOpsDevOpsWeb 1. 2. 3.

nginxPHPNodejs

**** Docker,Docker-compose,git

1

$ git clone https://github.com/xiongwilee/docker-compose-boilerplate.git

2demo

$ cd docker-compose
$ sh build.sh -u demo -m admin:master

app/``demo``nginx/conf.d``demo.conf

3

$ docker-compose up -d

docker-compose pshostssample.demo.testdomain.comhttp://sample.demo.testdomain.com phpinfo()

TIPS: orDockercase

dockerdocker-composegitNginxPHPdockerdocker-compose

  1. boilerplate
  2. sample

docker-composedocker-compose

1docker-composedocker-compose.yml

docker-composedocker-compose.yml

version: '3'
services:
    # PHPapp
    php:
        build: ./php
        expose:
            - "9000"
    # nginx
    nginx:
        build: ./nginx
        # 
        ports:
            - "80:80"
        # php
        depends_on:
            - "php"
    # jenkins
    jenkins:
        image: jenkins:latest
        ports:
            - "8080:8080"
            - "50000:50000"

PHPphp``nginx``jenkins``jenkinsDockerfilebuild

2build.sh

dockernginxphpbuild.sh

sample

build.sh

1

nginx/conf.d/sample``testdomain.com

2docker-compose.yml

docker-composenginx8080jenkins8080php-fpm9000

php./php/Dockerfile

3

1build.sh

build.sh``./build.sh

Example:
  ./build.sh -u xiongwilee -m php:online,service:online
Usage:
  -u                        default
  -m          php:online,service:online
  -e    php:true,service:false
  -d                      default

2PHP

php/samplesample

a.
  • on_add.shPHP./build.sh -u {name}
  • on_upd.sh``./build.sh -u {name} -m web:master
  • on_env.sh``./build.sh -u {name} -m web:master -e web:true
b. app/sample/sample

samplesamplephpsample.{name}.testdomain.com

3Nginx

a. nginx/conf.d

php/samplenginx/conf.dsamplesample${name}

b. nginx/log

nginx/lognginx

4Jenkins

jenkins8080http://jenkins.testdomain.com:8080jenkins

a.

Jenkinsbuild.shjenkinsjenkins

jenkins-Build User Vars Pluginjenkins

BUILD_USERjenkinsjenkins

b. DockerJenkins

jenkinsDockerjenkinsbuild.shjenkinsjenkins

ssh apple@{jenkinsIP} "sh build.sh"

c. job
  1. general
    • "String Parameter""web""web-fe""service"
    • "Boolean Parameter""web_env"service_env
  2. "Execute Shell"
echo " web-fe:${web_fe},web:${web},service:${service}   ${BUILD_USER_ID} "

ssh apple@{jenkinsIP} "sh ~/docker-compose/build.sh -u ${BUILD_USER_ID} -m web-fe:${web_fe},web:${web},service:${service} -e web:${web_env},service:${service_env}";

jenkinsbuild.sh

PHPNodejs

  1. Nodejsdocker-compose.yml
  2. build.sh

  3. nginxnginx/conf.d/sample

issueforkxiongwilee[at]foxmail.com