docker-compose.yml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. version: "3.8"
  2. services:
  3. nginx:
  4. build:
  5. context: ./services/nginx
  6. args:
  7. NGINX_VERSION: ${NGINX_VERSION}
  8. CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
  9. NGINX_INSTALL_APPS: ${NGINX_INSTALL_APPS}
  10. container_name: nginx
  11. ports:
  12. - "${NGINX_HTTP_HOST_PORT}:80"
  13. - "${NGINX_HTTPS_HOST_PORT}:443"
  14. volumes:
  15. # - ${GITLAB_RUNNER}:${GITLAB_RUNNER}:rw
  16. - ${SOURCE_DIR}:/www/:rw
  17. - ${NGINX_SSL_CERTIFICATE_DIR}:/ssl:rw
  18. - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw
  19. - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro
  20. - ${NGINX_FASTCGI_PHP_CONF}:/etc/nginx/fastcgi-php.conf:ro
  21. - ${NGINX_FASTCGI_PARAMS}:/etc/nginx/fastcgi_params:ro
  22. - ${NGINX_LOG_DIR}:/var/log/nginx/:rw
  23. environment:
  24. TZ: "$TZ"
  25. depends_on:
  26. - php
  27. restart: always
  28. networks:
  29. - serv-network
  30. php:
  31. build:
  32. context: ./services/php
  33. args:
  34. PHP_VERSION: php:${PHP_VERSION}-fpm-alpine
  35. CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
  36. PHP_EXTENSIONS: ${PHP_EXTENSIONS}
  37. TZ: "$TZ"
  38. container_name: php
  39. expose:
  40. - 9000
  41. volumes:
  42. # - ${GITLAB_RUNNER}:${GITLAB_RUNNER}:rw
  43. - ${SOURCE_DIR}:/www/:rw
  44. - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini:ro
  45. - ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw
  46. - ${PHP_LOG_DIR}:/var/log/php
  47. - ${DATA_DIR}/composer:/tmp/composer
  48. depends_on:
  49. - mysql
  50. - redis
  51. - mongo
  52. restart: always
  53. cap_add:
  54. - SYS_PTRACE
  55. networks:
  56. - serv-network
  57. mysql:
  58. image: mysql:${MYSQL_VERSION}
  59. container_name: mysql
  60. ports:
  61. - "${MYSQL_HOST_PORT}:3306"
  62. volumes:
  63. - ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro
  64. - ${DATA_DIR}/mysql:/var/lib/mysql/:rw
  65. restart: always
  66. expose:
  67. - 3306
  68. cap_add:
  69. - SYS_NICE
  70. networks:
  71. - serv-network
  72. environment:
  73. MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
  74. TZ: "$TZ"
  75. redis:
  76. image: redis:${REDIS_VERSION}
  77. container_name: redis
  78. ports:
  79. - "${REDIS_HOST_PORT}:6379"
  80. volumes:
  81. - ${REDIS_CONF_FILE}:/etc/redis.conf:ro
  82. - ${DATA_DIR}/redis:/data/:rw
  83. restart: always
  84. expose:
  85. - 6379
  86. entrypoint: ["redis-server", "/etc/redis.conf"]
  87. environment:
  88. TZ: "$TZ"
  89. networks:
  90. - serv-network
  91. mongo:
  92. image: mongo:latest
  93. container_name: mongodb
  94. ports:
  95. - 27017:27017 # 本地端口(可自定义):容器内默认端口(mongo设定为27017)
  96. expose:
  97. - 27017
  98. volumes:
  99. - ${DATA_DIR}/mongo-entrypoint/:/docker-entrypoint-initdb.d/:rw # 本地文件路径:容器内映射路径
  100. - mongo-data:/data/db/:rw
  101. environment:
  102. MONGO_INITDB_ROOT_USERNAME: root
  103. MONGO_INITDB_ROOT_PASSWORD: 123456
  104. restart: always
  105. networks:
  106. - serv-network
  107. command: mongod
  108. jenkins:
  109. image: jenkins/jenkins
  110. container_name: jenkins
  111. volumes:
  112. - ${JENKINS_DATA_PATH}:/var/jenkins_home
  113. ports:
  114. - "8899:8899"
  115. - "50000:50000"
  116. restart: always
  117. networks:
  118. - serv-network
  119. volumes:
  120. mongo-data:
  121. networks:
  122. serv-network: