​​​​

mac m1 docker php 相关软件,后端开发 docker_compose.yml 已验证通过

  2020款 MacBook air m1 开发环境搭建。Apple silicon。

  docker环境执行开启。因为如果在本地装相关软件的话,会有各种坑。

  1.下载docker 适配于m1的。https://desktop.docker.com/mac/stable/arm64/60984/Docker.dmg

  2.docker_compose.yml  修改整理 执行 docker-compose up -d

  3.

  

version: "3"
services:nginx:build:context: ./services/nginxargs:NGINX_VERSION: nginx:${NGINX_VERSION}CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}NGINX_INSTALL_APPS: ${NGINX_INSTALL_APPS}#指定此 container_name 可以方便后期使用固定的 bash 命令别名进入容器container_name: ${DNMP_PROJECT}_nginxports:- "${NGINX_HTTP_HOST_PORT}:80"- "${NGINX_HTTPS_HOST_PORT}:443"- "${DEMO_PROJECT_PORT}:${DEMO_PROJECT_PORT}"volumes:- ${SOURCE_DIR}:/www/:rw# use delegated to improve file sync performance- ${PROJECT_DIR}:${PROJECT_DIR}:rw,delegated- ${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/:rwenvironment:TZ: "${TZ}"restart: alwaysnetworks:- defaultphp:# user: "${UID}:${GID}" # we added this line to get a specific user / group id# uid in container share uid pool within host kernel# use specified uid to avoid security/permission vulnerability which leads corruption of host system# uncomment this to allow exec high privilege commands in container, such as apk add ..user: "1000:1000"build:context: ./services/phpargs:PHP_VERSION: php:${PHP_VERSION}-fpm-alpineCONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}PHP_EXTENSIONS: ${PHP_EXTENSIONS}TZ: "${TZ}"container_name: ${DNMP_PROJECT}_phpexpose:- 9501extra_hosts:- "www.site1.com:172.17.0.1"volumes:- ${SOURCE_DIR}:/www/:rw# php container also need to use this volume mapping, otherwise nginx 404- ${PROJECT_DIR}:${PROJECT_DIR}:rw,delegated- ${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:rw- ${DATA_DIR}/composer:/tmp/composerrestart: alwayscap_add:- SYS_PTRACEnetworks:- default#  mysql:
#    image: mysql:${MYSQL_VERSION}
#    container_name: ${DNMP_PROJECT}_mysql
#    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"mysql5:#platform: linux/amd64platform: linux/x86_64image: mysql:${MYSQL5_VERSION}container_name: ${DNMP_PROJECT}_mysql5ports:- "${MYSQL5_HOST_PORT}:3306"volumes:- ${MYSQL5_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro- ${DATA_DIR}/mysql5:/var/lib/mysql/:rwrestart: alwaysnetworks:- defaultenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpress#  openresty:
#    image:  openresty/openresty:${OPENRESTY_VERSION}
#    container_name: ${DNMP_PROJECT}_openresty
#    ports:
#       - "${OPENRESTY_HTTP_HOST_PORT}:80"
#       - "${OPENRESTY_HTTPS_HOST_PORT}:443"
#    volumes:
#       - ${SOURCE_DIR}:/www/:rw
#       - ${OPENRESTY_CONFD_DIR}:/etc/nginx/conf.d/:ro
#       - ${OPENRESTY_SSL_CERTIFICATE_DIR}:/ssl:rw
#       - ${OPENRESTY_CONF_FILE}:/usr/local/openresty/nginx/conf/nginx.conf:ro
#       - ${OPENRESTY_FASTCGI_PHP_CONF}:/usr/local/openresty/nginx/conf/fastcgi-php.conf:ro
#       - ${OPENRESTY_CONF_FASTCGIPARAMS_FILE}:/usr/local/openresty/nginx/conf/fastcgi_params:ro
#       - ${OPENRESTY_LOG_DIR}:/var/log/nginx/:rw
#    environment:
#      TZ: "$TZ"
#    networks:
#      - defaultredis:image: redis:${REDIS_VERSION}container_name: ${DNMP_PROJECT}_redisports:- "${REDIS_HOST_PORT}:6379"volumes:- ${REDIS_CONF_FILE}:/etc/redis.conf:ro- ${DATA_DIR}/redis:/data/:rwrestart: alwaysentrypoint: ["redis-server", "/etc/redis.conf"]environment:TZ: "$TZ"networks:- default#  memcached:
#    image: memcached:${MEMCACHED_VERSION}
#    container_name: ${DNMP_PROJECT}_memcached
#    ports:
#      - "${MEMCACHED_HOST_PORT}:11211"
#    environment:
#       MEMCACHED_CACHE_SIZE: "${MEMCACHED_CACHE_SIZE}"
#    networks:
#      - default#  rabbitmq:
#    image: rabbitmq:${RABBITMQ_VERSION}
#    container_name: ${DNMP_PROJECT}_rabbitmq
#    restart: always
#    ports:
#      - "${RABBITMQ_HOST_PORT_C}:5672"
#      - "${RABBITMQ_HOST_PORT_S}:15672"
#    environment:
#       TZ: "$TZ"
#       RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}"
#       RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}"
#    networks:
#          - default#  phpmyadmin:
#    image: phpmyadmin/phpmyadmin:latest
#    container_name: ${DNMP_PROJECT}_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: ${DNMP_PROJECT}_phpredisadmin
#    ports:
#      - "${REDISMYADMIN_HOST_PORT}:80"
#    networks:
#      - default
#    environment:
#      - REDIS_1_HOST=redis
#      - REDIS_1_PORT=6379
#      - TZ=$TZ#  mongodb:
#    image: mongo:${MONGODB_VERSION}
#    container_name: ${DNMP_PROJECT}_mongodb
#    environment:
#        MONGO_INITDB_ROOT_USERNAME: "${MONGODB_INITDB_ROOT_USERNAME}"
#        MONGO_INITDB_ROOT_PASSWORD: "${MONGODB_INITDB_ROOT_PASSWORD}"
#        TZ: "$TZ"
#    volumes:
#      - ${DATA_DIR}/mongo:/data/db:rw
#      - ${DATA_DIR}/mongo_key:/mongo:rw
#    ports:
#       - "${MONGODB_HOST_PORT}:27017"
#    networks:
#       - default
#    command:
#       --auth#  adminmongo:
#    image: mrvautin/adminmongo
#    container_name: ${DNMP_PROJECT}_adminmongo
#    ports:
#      - "${ADMINMONGO_HOST_PORT}:1234"
#    environment:
#      - HOST=0.0.0.0
#      - DB_HOST=mongodb
#      - DB_PORT=27017
#    networks:
#      - defaultelasticsearch:
#    platform: linux/amd64 #platform: linux/x86_64build:context: ./services/elasticsearchargs:ELASTICSEARCH_VERSION: ${ELASTICSEARCH_VERSION}ELASTICSEARCH_PLUGINS: ${ELASTICSEARCH_PLUGINS}container_name: ${DNMP_PROJECT}_elasticsearchenvironment:- TZ=${TZ}- discovery.type=single-node- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- ${DATA_DIR}/esdata:/usr/share/elasticsearch/data- ${ELASTICSEARCH_CONF_FILE}:/usr/share/elasticsearch/config/elasticsearch.ymlhostname: elasticsearchrestart: alwaysports:- "${ELASTICSEARCH_HOST_PORT_C}:9200"- "${ELASTICSEARCH_HOST_PORT_S}:9300"kibana:platform: linux/amd64 #platform: linux/x86_64image: kibana:${KIBANA_VERSION}container_name: ${DNMP_PROJECT}_kibanaenvironment:TZ: "${TZ}"elasticsearch.hosts: http://elasticsearch:9200I18N_LOCALE: "${KIBANA_I18N_LOCALE}"hostname: kibanadepends_on:- elasticsearchrestart: alwaysports:- "${KIBANA_HOST}:5601"#  logstash:
#    image: logstash:${LOGSTASH_VERSION}
#    container_name: ${DNMP_PROJECT}_logstash
#    hostname: logstash
#    restart: always
#    depends_on:
#      - elasticsearch
#    environment:
#      TZ: "$TZ"
#    ports:
#      - "${LOGSTASH_HOST_PORT_C}:9600"
#      - "${LOGSTASH_HOST_PORT_S}:5044"#  node:
#    image: node:${NODE_VERSION}
#    environment:
#      - NODE_ENV=production
#    volumes:
#      - ${SOURCE_DIR}:/www/:rw
#    expose:
#      - "8081"
#    networks:
#      - default
#    stdin_open: true
#    tty: true#  supervisor:
#    build:
#      context: ./services/supervisor
#      args:
#        ALPINE_VERSION: alpine:${ALPINE_VERSION}
#        TZ: "$TZ"
#        CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
#    container_name: ${DNMP_PROJECT}_supervisor
#    ports:
#      - "${SUPERVISOR_HOST_PORT_C}:9001"
#    volumes:
#      - ${SOURCE_DIR}:/www/:rw
#      - ${SUPERVISOR_LOG}:/var/log/supervisor/:rw
#      - ${SUPERVISOR_CONFIG}:/etc/supervisor/conf.d/:rw
#      - ${SUPERVISOR_CONF_FILE}:/etc/supervisor/supervisord.conf:ro
#    command:
#      - /bin/sh
#      - -c
#      - |
#        supervisord -n -c /etc/supervisor/supervisord.conf
#    restart: always
#    cap_add:
#      - SYS_PTRACE
#    networks:
#      - defaultnetworks:default:

env文件。

#
# PHP source directory
#
SOURCE_DIR=./www#
#配置自己本机的dnmp开发环境的目录地址,主要是为了在bash脚本中使用
#DNMP_DIR=~/Documents/my_projects/dnmps
DNMP_PROJECT=demo#
# 本机使用此端口访问容器中对应项目,在 .services/nginx/conf.d/demo.conf 中监听的端口保持与此端口一致,方便管理
#
DEMO_PROJECT_PORT=10000
#
# 使用此单独的环境变量映射本机开发目录到docker 容器中开发目录
#
PROJECT_DIR=/Users#
# Runtime data directory
#
DATA_DIR=./data#
# Container Timezone
#
TZ=Asia/Shanghai#
# Container package fetch url
#
# Can be empty, followings or others:
# mirrors.163.com
# mirrors.aliyun.com
# mirrors.ustc.edu.cn
#
CONTAINER_PACKAGE_URL=mirrors.aliyun.com#
#ALPINE
#
ALPINE_VERSION=3.12#
# Nginx
#
NGINX_VERSION=1.19.1-alpine
NGINX_HTTP_HOST_PORT=80
NGINX_HTTPS_HOST_PORT=443
NGINX_CONFD_DIR=./services/nginx/conf.d
NGINX_CONF_FILE=./services/nginx/nginx.conf
NGINX_FASTCGI_PHP_CONF=./services/nginx/fastcgi-php.conf
NGINX_FASTCGI_PARAMS=./services/nginx/fastcgi_params
NGINX_SSL_CERTIFICATE_DIR=./services/nginx/ssl
NGINX_LOG_DIR=./logs/nginx
# Available apps: certbot
NGINX_INSTALL_APPS=#
# Openresty
#
OPENRESTY_VERSION=alpine
OPENRESTY_HTTP_HOST_PORT=80
OPENRESTY_HTTPS_HOST_PORT=443
OPENRESTY_CONFD_DIR=./services/openresty/conf.d
OPENRESTY_CONF_FILE=./services/openresty/openresty.conf
OPENRESTY_FASTCGI_PHP_CONF=./services/openresty/fastcgi-php.conf
OPENRESTY_CONF_FASTCGIPARAMS_FILE=./services/openresty/fastcgi_params
OPENRESTY_SSL_CERTIFICATE_DIR=./services/openresty/ssl
OPENRESTY_LOG_DIR=./logs/nginx#
# SUPERVISOR
#
SUPERVISOR_CONFIG=./services/supervisor/conf.d/
SUPERVISOR_LOG=./logs/supervisor
SUPERVISOR_CONF_FILE=./services/supervisor/supervisord.conf
SUPERVISOR_HOST_PORT_C=9001#
# PHP7
#
# Available PHP_EXTENSIONS:
#
# pdo_mysql,zip,pcntl,mysqli,mbstring,exif,bcmath,calendar,
# sockets,gettext,shmop,sysvmsg,sysvsem,sysvshm,pdo_rebird,
# pdo_dblib,pdo_oci,pdo_odbc,pdo_pgsql,pgsql,oci8,odbc,dba,
# gd,intl,bz2,soap,xsl,xmlrpc,wddx,curl,readline,snmp,pspell,
# recode,tidy,gmp,imap,ldap,imagick,sqlsrv,mcrypt,opcache,
# redis,memcached,xdebug,swoole,pdo_sqlsrv,sodium,yaf,mysql,
# amqp,mongodb,event,rar,ast,yac,yar,yaconf,msgpack,igbinary,
# seaslog,varnish,xhprof,xlswriter,memcache,rdkafka,zookeeper,
# psr,phalcon,sdebug,ssh2,yaml,protobuf
#
# You can let it empty to avoid installing any extensions,
# or install multi plugins as:
# PHP_EXTENSIONS=pdo_mysql,mysqli,gd,curl,opcache
#
PHP_VERSION=7.1.3
PHP_PHP_CONF_FILE=./services/php/php.ini
PHP_FPM_CONF_FILE=./services/php/php-fpm.conf
PHP_LOG_DIR=./logs/php
PHP_EXTENSIONS=soap,xsl,xmlrpc,wddx,bz2,zip,pcntl,pdo_mysql,mysqli,mbstring,exif,bcmath,calendar,sockets,gettext,shmop,sysvmsg,sysvsem,sysvshm,gd,curl,opcache,xdebug,redis#
# PHP5.6
#
PHP56_VERSION=5.6.40
PHP56_PHP_CONF_FILE=./services/php56/php.ini
PHP56_FPM_CONF_FILE=./services/php56/php-fpm.conf
PHP56_LOG_DIR=./logs/php
PHP56_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache#
# PHP5.4
#
PHP54_VERSION=5.4.45
PHP54_PHP_CONF_FILE=./services/php54/php.ini
PHP54_FPM_CONF_FILE=./services/php54/php-fpm.conf
PHP54_LOG_DIR=./logs/php
PHP54_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache#
# RABBITMQ
#
RABBITMQ_VERSION=management
RABBITMQ_HOST_PORT_C=5672
RABBITMQ_HOST_PORT_S=15672
RABBITMQ_DEFAULT_USER=myuser
RABBITMQ_DEFAULT_PASS=mypass#
# MONGODB
#
MONGODB_VERSION=4.1
MONGODB_HOST_PORT=27017
MONGODB_INITDB_ROOT_USERNAME=root
MONGODB_INITDB_ROOT_PASSWORD=123456#
# ELASTICSEARCH
#
# Available ELASTICSEARCH_PLUGINS:
#
# amazon-ec2,analysis-icu,analysis-kuromoji,analysis-nori,
# analysis-phonetic,analysis-smartcn,analysis-stempel,
# analysis-ukrainian,discovery-azure-classic,discovery-ec2,
# discovery-file,discovery-gce,google-cloud-storage,
# ingest-attachment,ingest-geoip,ingest-user-agent,mapper-murmur3,
# mapper-size,microsoft-azure-storage,qa,repository-azure,
# repository-gcs,repository-hdfs,repository-s3,store-smb,
# analysis-ik,analysis-pinyin
#
# You can let it empty to avoid installing any plugins,
# or install plugins as:
# ELASTICSEARCH_PLUGINS=analysis-ik,analysis-pinyin
#
ELASTICSEARCH_VERSION=7.10.1
ELASTICSEARCH_CONF_FILE=./services/elasticsearch/elasticsearch.yml
ELASTICSEARCH_HOST_PORT_C=9200
ELASTICSEARCH_HOST_PORT_S=9300
ELASTICSEARCH_PLUGINS=#
# KIBANA
#
KIBANA_VERSION=7.10.1
KIBANA_HOST=5601
KIBANA_I18N_LOCALE=zh-CN#
# LOGSTASH
#
LOGSTASH_VERSION=7.1.1
LOGSTASH_HOST=5601
LOGSTASH_HOST_PORT_C=9600
LOGSTASH_HOST_PORT_S=5044#
# MySQL5
#
MYSQL5_VERSION=5.7.33
MYSQL5_HOST_PORT=3306
MYSQL5_ROOT_PASSWORD=12345678
MYSQL5_CONF_FILE=./services/mysql5/mysql.cnf#
# Redis
#
REDIS_VERSION=5.0.3-alpine
REDIS_HOST_PORT=6379
REDIS_CONF_FILE=./services/redis/redis.conf#
# Memcached
#
MEMCACHED_VERSION=alpine
MEMCACHED_HOST_PORT=11211
MEMCACHED_CACHE_SIZE=128#
# phpMyAdmin
#
PHPMYADMIN_HOST_PORT=8080
PHPMYADMIN_USER_CONF_FILE=./services/phpmyadmin/config.user.inc.php
PHPMYADMIN_PHP_CONF_FILE=./services/phpmyadmin/php-phpmyadmin.ini#
# redisMyAdmin
#
REDISMYADMIN_HOST_PORT=8081#
# AdminMongo
#
ADMINMONGO_HOST_PORT=1234#
# Node
#
NODE_VERSION=10.16.1-alpine

m1的docker-compose相关推荐

  1. M1 和 Docker 谈了个恋爱

    出于开源项目的需要,我准备把之前在 windows 下运行的开源项目移植到 Mac 上跑得试下,但是 Mac M1 芯片并不能很好地支持 Docker,这不,发现 Docker 也正式支持 Mac 了 ...

  2. Docker compose 容器编排

    1. 概述 问题:如果要使用 Docker 运行 LNMP 架构,那么 Nginx.MySQL.PHP. Linux三个服务运行在一个容器里,还是运行在多个容器里呢? 答案是都可以. 你可以分别放在三 ...

  3. Docker核心技术之Docker Compose

    一.Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的 ...

  4. Docker Compose 1.18.0 之服务编排详解

    一个使用Docker容器的应用,通常由多个容器组成.使用Docker Compose,不再需要使用shell脚本来启动容器.在配置文件中,所有的容器通过services来定义,然后使用docker-c ...

  5. Centos7 Docker Compose部署mysql5.7

    1 . 创建docker-compose.yml文件 version: '3' services:mysql:restart: alwaysimage: mysql:5.7.22container_n ...

  6. Docker Compose安装

    一 .  Docker Compose概述 Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后 , ...

  7. Docker(八):Docker Compose

    Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...

  8. Docker compose多容器管理

    前言 Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr). Docker Compose 运行的目录下的所有文件(doc ...

  9. Docker Compose—简化复杂容器应用的利器

    Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...

  10. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

最新文章

  1. CISCO路由器、交换机密码破解
  2. Content-Disposition
  3. setscale方法的用法_基于BigDecimal.setScale的用法小结
  4. 【嵌入式】Libmodbus源码分析(三)-modbus相关函数分析
  5. JDK 10:从Java访问Java应用程序的进程ID
  6. 服务器 raid 1t硬盘吗,用了4块1T的硬盘,做了raid5,显示有2.7T,但是分区做完系统后,有700多G不能动...
  7. Qt文档阅读笔记-Simple Anchor Layout Example解析
  8. 网易云api如何调用_分析网易云音乐API的经历
  9. Equals,ReferenceEquals,==的区别
  10. 洛谷——P1887 乘积最大3
  11. Visio+MathType安装包及安装步骤详细步骤
  12. 实习日记——Day48
  13. 服务器的带宽与宽带有什么区别
  14. Google究竟怎么扣税,如何结算?你想知道的都在这里了
  15. 静静的分析华为Mate X的部分“亮点”,静静的围观它装逼!
  16. java 7 安装_Java7详细安装使用技巧教程
  17. QT FTP上传文件
  18. 【MySQL】查询语句
  19. C#汉字转全拼,首拼
  20. 小飞鱼 通达OA二次开发网络课程 系列视频课程在CSDN发布

热门文章

  1. 【转载】MAC帧在经过路由器时,其源地址和目的地址会发生改变,路由器的目的地址会出现子在MAC帧中”如何理解?
  2. AltiumDesigner原理图库修改操作流程
  3. 顶级域名(一级域名)、二级域名、三级域名的区别与介绍
  4. 环丙沙星大鼠血清白蛋白纳米粒|甲硝唑小麦麦清白蛋白纳米粒|雷替曲塞乳清白蛋白纳米粒(科研级)
  5. 如何授权接入芝麻小客服系统?
  6. 英语16种时态表和人称表
  7. 好笑的GIF动态表情包怎么制作
  8. 对MC9S12XS128MAL中TIM、PIT、RTI的一点理解
  9. FreeRtos 任务优先级和中断优先级
  10. 【JavaWeb】消息摘要、数字签名与数字证书的区别