Docker laravel redisをつなげてみる
はじめに
lumenでRedisをつなげようとした時、うまくいかなかったので、
段階を分けて接続を試みようとした時のメモ
laravelでやってみる
構成
laravel
|_docker-compose.yml
|_app.docker
|_vhost.conf
|_web.docker
|_www
yml
docker-compose.yml
version: '2'
services:
web:
build:
context: ./
dockerfile: web.docker
volumes:
- ./www:/var/www
ports:
- "8000:80"
links:
- app
app:
build:
context: ./
dockerfile: app.docker
volumes:
- ./www:/var/www
links:
- redis
redis:
image: redis:latest
ports:
- "6379:6379"
command: redis-server --appendonly yes
appサーバー
Dockerfile
app.docker
FROM php:7-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql && \
#zip,unzip
apt-get install -y zip unzip && \
#vim
apt-get install -y vim && \
#composer
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
#user追加
useradd -m -s /bin/bash -u 1000 meidaimae && \
#www.conf修正
sed -i 's/user\ \=\ www-data/user\ \=\ meidaimae/g' /usr/local/etc/php-fpm.d/www.conf && \
sed -i 's/group\ \=\ www-data/group\ \=\ meidaimae/g' /usr/local/etc/php-fpm.d/www.conf
WORKDIR /var/www
共有ディレクトリ
mkdir www
webサーバー
Dockerfile
FROM nginx:latest
RUN useradd -m -s /bin/bash -u 1000 meidaimae && \
#nginx.conf
sed -i 's/user\ \ nginx\;/user\ \ meidaimae\;/g' /etc/nginx/nginx.conf
ADD ./vhost.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www
confファイル
vhost.conf
server {
listen 80;
index index.php index.html;
root /var/www/laravel/public;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
起動
docker-compose up -d
プロジェクト作成
#とりま、appサーバーに入る
docker exec -it laravel_app_1 bash
#んで、meidaimaeになってlaravelプロジェクト作成
chown -R meidaimae:meidaimae /var/www
su meidaimae
composer create-project --prefer-dist laravel/laravel laravel
#redis
cd laravel
composer require predis/predis
#/var/www以下ののディレクトリとファイルのアクセス権を変更
find /var/www -type d -exec chmod 770 {} \;
find /var/www -type f -exec chmod 770 {} \;
redis疎通確認
ping laravel_redis_1 #ここでhostを確認
続けて以下の箇所を.env編集
REDIS_HOST=172.20.0.2#上記で確認したhostを入力
SESSION_DRIVER=redis
CACHE_DRIVER=redis
routesにとりあえず
Route::get('/testCache', function() {
Cache::put('name', 'aaa',100);
return Cache::get('name');
});
ブラウザで確認
laravel
|_docker-compose.yml
|_app.docker
|_vhost.conf
|_web.docker
|_www
docker-compose.yml
version: '2'
services:
web:
build:
context: ./
dockerfile: web.docker
volumes:
- ./www:/var/www
ports:
- "8000:80"
links:
- app
app:
build:
context: ./
dockerfile: app.docker
volumes:
- ./www:/var/www
links:
- redis
redis:
image: redis:latest
ports:
- "6379:6379"
command: redis-server --appendonly yes
appサーバー
Dockerfile
app.docker
FROM php:7-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql && \
#zip,unzip
apt-get install -y zip unzip && \
#vim
apt-get install -y vim && \
#composer
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
#user追加
useradd -m -s /bin/bash -u 1000 meidaimae && \
#www.conf修正
sed -i 's/user\ \=\ www-data/user\ \=\ meidaimae/g' /usr/local/etc/php-fpm.d/www.conf && \
sed -i 's/group\ \=\ www-data/group\ \=\ meidaimae/g' /usr/local/etc/php-fpm.d/www.conf
WORKDIR /var/www
共有ディレクトリ
mkdir www
webサーバー
Dockerfile
FROM nginx:latest
RUN useradd -m -s /bin/bash -u 1000 meidaimae && \
#nginx.conf
sed -i 's/user\ \ nginx\;/user\ \ meidaimae\;/g' /etc/nginx/nginx.conf
ADD ./vhost.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www
confファイル
vhost.conf
server {
listen 80;
index index.php index.html;
root /var/www/laravel/public;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
起動
docker-compose up -d
プロジェクト作成
#とりま、appサーバーに入る
docker exec -it laravel_app_1 bash
#んで、meidaimaeになってlaravelプロジェクト作成
chown -R meidaimae:meidaimae /var/www
su meidaimae
composer create-project --prefer-dist laravel/laravel laravel
#redis
cd laravel
composer require predis/predis
#/var/www以下ののディレクトリとファイルのアクセス権を変更
find /var/www -type d -exec chmod 770 {} \;
find /var/www -type f -exec chmod 770 {} \;
redis疎通確認
ping laravel_redis_1 #ここでhostを確認
続けて以下の箇所を.env編集
REDIS_HOST=172.20.0.2#上記で確認したhostを入力
SESSION_DRIVER=redis
CACHE_DRIVER=redis
routesにとりあえず
Route::get('/testCache', function() {
Cache::put('name', 'aaa',100);
return Cache::get('name');
});
ブラウザで確認
app.docker
FROM php:7-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql && \
#zip,unzip
apt-get install -y zip unzip && \
#vim
apt-get install -y vim && \
#composer
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
#user追加
useradd -m -s /bin/bash -u 1000 meidaimae && \
#www.conf修正
sed -i 's/user\ \=\ www-data/user\ \=\ meidaimae/g' /usr/local/etc/php-fpm.d/www.conf && \
sed -i 's/group\ \=\ www-data/group\ \=\ meidaimae/g' /usr/local/etc/php-fpm.d/www.conf
WORKDIR /var/www
mkdir www
Dockerfile
FROM nginx:latest
RUN useradd -m -s /bin/bash -u 1000 meidaimae && \
#nginx.conf
sed -i 's/user\ \ nginx\;/user\ \ meidaimae\;/g' /etc/nginx/nginx.conf
ADD ./vhost.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www
confファイル
vhost.conf
server {
listen 80;
index index.php index.html;
root /var/www/laravel/public;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
起動
docker-compose up -d
プロジェクト作成
#とりま、appサーバーに入る
docker exec -it laravel_app_1 bash
#んで、meidaimaeになってlaravelプロジェクト作成
chown -R meidaimae:meidaimae /var/www
su meidaimae
composer create-project --prefer-dist laravel/laravel laravel
#redis
cd laravel
composer require predis/predis
#/var/www以下ののディレクトリとファイルのアクセス権を変更
find /var/www -type d -exec chmod 770 {} \;
find /var/www -type f -exec chmod 770 {} \;
redis疎通確認
ping laravel_redis_1 #ここでhostを確認
続けて以下の箇所を.env編集
REDIS_HOST=172.20.0.2#上記で確認したhostを入力
SESSION_DRIVER=redis
CACHE_DRIVER=redis
routesにとりあえず
Route::get('/testCache', function() {
Cache::put('name', 'aaa',100);
return Cache::get('name');
});
ブラウザで確認
#とりま、appサーバーに入る
docker exec -it laravel_app_1 bash
#んで、meidaimaeになってlaravelプロジェクト作成
chown -R meidaimae:meidaimae /var/www
su meidaimae
composer create-project --prefer-dist laravel/laravel laravel
#redis
cd laravel
composer require predis/predis
#/var/www以下ののディレクトリとファイルのアクセス権を変更
find /var/www -type d -exec chmod 770 {} \;
find /var/www -type f -exec chmod 770 {} \;
ping laravel_redis_1 #ここでhostを確認
続けて以下の箇所を.env編集
REDIS_HOST=172.20.0.2#上記で確認したhostを入力
SESSION_DRIVER=redis
CACHE_DRIVER=redis
routesにとりあえず
Route::get('/testCache', function() {
Cache::put('name', 'aaa',100);
return Cache::get('name');
});
ブラウザで確認
REDIS_HOST=172.20.0.2#上記で確認したhostを入力
SESSION_DRIVER=redis
CACHE_DRIVER=redis
Route::get('/testCache', function() {
Cache::put('name', 'aaa',100);
return Cache::get('name');
});
ブラウザで確認
おわりに
ここまでたどり着くのにめちゃくちゃ長かった。。
ふぅ〜
Author And Source
この問題について(Docker laravel redisをつなげてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/meidaimae/items/aa3dad468d62a417a3c6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .