欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker-compose 构建php72-fpm从零起步(2)

程序员文章站 2022-06-11 12:47:03
...
我的docker-compose学习系列文章
docker-compose 构建php72-fpm从零起步(1)
docker-compose 构建php72-fpm从零起步(2)
docker-compose 构建php72-fpm从零起步(3)

本文的目的:加入redis
接续前面的步骤,现在,加入redis到docker-compose里。

compose下,新建data目录,下面再建redis目录。

然后,
compose / build 目录下,新建 redis 目录。

总之,就是新建一个数据保存的共享目录,和 构建用目录。

build / redis 目录下,写一个Dockerfile 文件。

引用

FROM redis:3.2

# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone


然后,修改
build / docker-compose.yml

引用

version: '3.2'
services:
  php-fpm:
    build: ./php/
    ports:
      - "9000:9000"
    links:
      - redis-db:redis-db
    restart: always
    volumes:
      - ../app:/data/www:rw

  nginx:
    build: ./nginx
    depends_on:
      - php-fpm
    links:
      - php-fpm:php-fpm
    volumes:
      - ../app:/data/www:rw
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
    ports:
      - "80:80"
    restart: always
    command: nginx -g 'daemon off;'

  redis-db:
      build: ./redis
      ports:
        - "6379:6379"
      volumes:
        - ../data/redis:/data
      restart: always   


修改:
app / 1.php
<?php
header("Content-type: text/html; charset=utf-8");
$redis = Sys::getredis();
$redis->set('aa',1234);
echo $redis->get('aa');
echo "<br>上面一行显示1234,表示redis连接正确。";
		
class Sys
{
	
    /**
     * 得到redis
     * @return \Redis
     */
    public static function getredis()
    {
        static $redis = null;
        if ($redis == null) {
            $redis = new \Redis();
            $redis->connect('build_redis-db_1','6379');
            
        }
        return $redis;
    }
}




现在 ,
进入 build 目录。
关闭所有的容器。docker stop 容器名,
删除所有的容器  docker rm 容器名

然后
删除以前的镜像
docker rmi build_php-fpm
docker rmi build_redis-db

然后,用docker-compose构建,然后启动
../bin/docker-compose build
../bin/docker-compose up -d

打开浏览器
http://192.168.99.100/1.php

引用

1234
上面一行显示1234,表示redis连接正确。


额外注意到,此时,data / redis 目录里有了一个文件,这是linux产生的,却保存在共享目录里,windows下也能看到,很有意思的。