使用docker搭建可扩展的swoft协程框架微服务

走远了吗. 提交于 2020-08-08 21:58:27

Docker组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

安装docker、composer、git。
 
1、在宿主机创建 swoft 项目(宿主机需实安装基础的 php 环境来使用 composer)
git clone https://github.com/swoft-cloud/swoft
cd swoft
composer update
2  在swoft目录创建 nginx.conf ,配置nginx作多个swoft的分发!
worker_processes 1;

events {
    worker_connections 1024;
}

http{
   upstream swoft_server {
       server 139.199.68.125:18306;
      server 139.199.68.125:18307;
  }

  server {
     listen 80;
     
     access_log /var/log/nginx/access.log;
     error_log /var/log/nginx/error.log;

     index index.html index.php;
     server_name localhost;
     
     location / {
    	index index.html index.php;
    	proxy_pass http://swoft_server/;
     }
  }
}

 

3、使用swoft目录下的 docker-compose 来编排启动容器
编辑 docker-compose.yaml 文件 给容器自定义个名字
version: '3.4'
networks: 
  my-network:
    driver: bridge
services:
  swoft_1:
    image: swoft/swoft
    container_name: swoft-srv-1
    environment:
      - APP_ENV=dev
      - TIMEZONE=Asia/Shanghai
    restart: always
    depends_on:
      - nginx
    stdin_open: true
    tty: true
    networks:
     - "my-network"
    privileged: true
    entrypoint: ["php",  "/var/www/swoft/bin/swoft", "http:start"]
    ports:
      - "18306:18306"
    volumes:
       - ./:/var/www/swoft
  
  swoft_2:
    image: swoft/swoft
    container_name: swoft-srv-2
    environment:
      - APP_ENV=dev
      - TIMEZONE=Asia/Shanghai
    restart: always
    depends_on:
      - nginx
    stdin_open: true
    tty: true
    networks:
      - "my-network"
    privileged: true
    entrypoint: ["php", "/var/www/swoft/bin/swoft", "http:start"]
    ports:
      - "18307:18307"
    volumes:
      - ./:/var/www/swoft

  nginx:
    image: nginx:latest
    networks:
      - "my-network"
    ports:
      - "80:80"
    container_name: nginx-node
    restart: always
    volumes:
      - "/data/www/swoft/nginx.conf:/etc/nginx/nginx.conf"
      - "/var/log/nginx/access.log:/var/log/nginx/access.log"
      - "/var/log/nginx/error.log:/var/log/nginx/error.log"

# 启动容器
docker-compose up -d
# 查看容器是否成功运行
docker ps
# 进入容器shell (swoft-srv-1)为容器名称
docker exec -it swoft-srv-1 bash


# 运行容器
docker-compose up -d swoft
# 停止容器
docker-compose stop swoft

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!