Docker compose ile nginx, mysql, phpmyadmin ve redis servislerini kullanarak bir stack oluşturmaya çalışıyorum.
Docker-compose.yml
version: "3.8"
services:
app:
build:
context: .
dockerfile: Dockerfile
image: laravel-app
restart: unless-stopped
working_dir: /var/www/
volumes:
- ./:/var/www
networks:
- backend
nginx_laravel:
image: nginx:latest
container_name: nginx_laravel
restart: always
volumes:
- .:/var/www/
- ./conf/conf.d:/etc/nginx/conf.d/
ports:
- 9000:80
networks:
- backend
mysql_laravel:
platform: linux/x86_64
image: mysql
tty: true
container_name: mysql_laravel
restart: always
ports:
- 3307:3306
environment:
- MYSQL_ROOT_PASSWORD=root
volumes:
- db:/var/lib/mysql
networks:
- backend
phpmyadmin:
image: phpmyadmin:latest
restart: always
ports:
- 8080:80
environment:
PMA_HOST: mysql
PMA_PASSWORD: root
redis:
image: "redis:alpine"
container_name: redis
command: redis-server --appendonly yes
ports:
- 6379:6379
networks:
- backend
networks:
backend:
driver: bridge
volumes:
db:
stack sorunsuz bir şekilde ayağa kalkıyor.
redis.conf için herhangi bir ayar değiştirmedim.
redis-cli ping
PONG yanıtını döndürüyor. o yüzden sorunun laravel tarafında olduğunu düşünüyorum.
composer require predis/predis
paketini de kurdum
use Illuminate\Support\Facades\Redis;
Route::get('redis-test', function () {
Redis::throttle('key')->block(0)->allow(1)->every(5)->then(function () {
info('redis-cli bağlandı');
}, function () {
return $this->release(5);
});
})->name('redis-test');
bu kodu çalıştırdığımda sadece "Connection refused" hatasını veriyor.