docker-compose搭建nmp、redis、memcached、swoole、composer、node

docker-compose.yml

version: "3.7"

services:
  nginx:
    image: nginx
    volumes:
      - E:/wwwroot:/usr/share/nginx/html
      - ./nginx/conf/conf.d:/etc/nginx/conf.d
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/log:/etc/log/nginx
    ports:
      - 80:80
    environment:
      - TZ=Asia/Shanghai
    links:
      - php-fpm
    container_name: dc-nginx

  php-fpm:
    build: ./php-fpm/7.2
    links:
      - mysql
      - redis
      - memcached
    ports:
      - 9000:9000
    volumes:
      - E:/wwwroot:/usr/share/nginx/html
      - ./php-fpm/7.2/conf/php.ini:/usr/local/etc/php/php.ini
      - ./php-fpm/7.2/log:/etc/log/php
    container_name: dc-php

  mysql:
    image: mysql:5.7
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - ./mysql/conf/my.cnf:/etc/mysql/my.cnf
    container_name: dc-mysql

  redis:
    image: redis
    ports:
      - 6379:6379
    volumes:
      - ./redis/:/data
    container_name: dc-redis

  memcached:
    image: memcached
    ports:
      - 11211:11211
    container_name: dc-memcached
    
  node:
  	build: ./node
  	ports:
  	  # 如果8080被占用就换一个
  	  - 8080:8080
    volumes:
      # 工作目录与项目目录统一
      - E:/wwwroot:/usr/share/nginx/html
    # 允许外部shell访问
    tty : true
    environment:
      # windows环境下一定要进行此配置,否则无法进行热重载
      - CHOKIDAR_USEPOLLING=true
  	container_name: dc-node

./php-fpm/7.2/dockerfile

FROM php:7.2-fpm

ENV TZ=Asia/Shanghai
ENV DEPENDENCIES curl gnupg git wget gcc g++

ENV PHP_DEPENDENCIES \
    libwebp-dev libmcrypt-dev libmemcached-dev libbz2-dev libpng-dev \
    libxpm-dev librabbitmq-dev libfreetype6-dev libjpeg-dev libssh-dev
ENV PHP_EXT_INSTALLED \
    swoole redis memcached mcrypt

# INSTALL PHP
RUN apt-get update \
	&& apt-get install -y $PHP_DEPENDENCIES $DEPENDENCIES \
	&& pecl install -o -f $PHP_EXT_INSTALLED \
	&& docker-php-ext-configure gd --with-gd --with-webp-dir --with-jpeg-dir \
	  --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir \
	&& docker-php-ext-install opcache bcmath bz2 gd iconv mysqli pdo pdo_mysql zip sockets \
	&& docker-php-ext-enable opcache redis memcached swoole mcrypt

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV COMPOSER_ALLOW_SUPERUSER=1

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
  && apt-get -y remove $DEPENDENCIES \
  && apt-get purge -y --auto-remove \
  && rm -rf /var/lib/apt/lists/* \
  && rm -rf /tmp/pear ~/.pearrc

./node/dockerfile

FROM node:latest

# 安装淘宝镜像
# RUN npm install -g cnpm --registry=https://registry.npm.taobao.org

# 安装最新vue-cli(可以使用vue-create创建项目)
RUN npm i @vue/cli -g

配置composer

docker-compose exec php-fpm bash
--> composer config -g repo.packagist composer https://packagist.org (https://packagist.phpcomposer.com)
--> composer config -g github-protocols https ssh

搭建vue

docker-compose exec node bash
--> cd /usr/shara/nginx/html
--> vue create vue-project(vue项目名)
--> cd vue-project
--> yarn serve / npm run serve

你可能感兴趣的:(工具,配置)