【发布时间】:2021-11-16 18:39:32
【问题描述】:
我有两个服务。 Redis 和 PHP。如何让 php 等待 redis 的启动并写下它。我尝试使用 healthcheck-s 但显然我没有正确设置它。
docker-compose.yml
version: '2'
services:
php:
build:
context: docker/web
dockerfile: Dockerfile-php-7.0
container_name: php
ports:
- "8280:80"
links:
- redis:redis
redis:
build: docker/cache
container_name: redis
Dockerfile-php-7.0
FROM php:7.0
RUN pecl install redis \
&& docker-php-ext-enable redis
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php"]
EXPOSE 80
index.php
<?php
echo 'Starting';
$redis = new Redis();
$redis->connect(getenv('host'), getenv('6379'));
var_dump($redis->incr('foo'));
?>
Dockerfile
FROM redis:3.2-alpine
COPY conf/redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
EXPOSE 6379
别怕骂我。我刚开始学习docker。 如果有任何帮助,我将不胜感激!!!
【问题讨论】:
-
您可能可以在 docker-compse.yml 中使用depends_on 进行php 服务。 docs.docker.com/compose/compose-file/compose-file-v2/…
标签: php docker docker-compose redis health-check