【问题标题】:The problem Docker PHP-Redis and healthcheckDocker PHP-Redis 和 healthcheck 的问题
【发布时间】: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。 如果有任何帮助,我将不胜感激!!!

【问题讨论】:

标签: php docker docker-compose redis health-check


【解决方案1】:

这是您可以使用的 docker-compose.yml 文件:

version: '2.1'
services:
  php:
    build:
      context: docker/web
      dockerfile: Dockerfile-php-7.0
    container_name: php
    ports:
      - "8280:80"
    depends_on:
      redis:
        condition: service_healthy
  redis:
    build: docker/cache
    container_name: redis
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s

我还将 PHP 脚本 (index.php) 更改如下:

<?php
echo 'Starting';
$redis = new Redis();
$redis->connect('redis', '6379');
var_dump($redis->incr('foo'));

现在整个堆栈都可以在我的机器上运行。我可以从 php 连接 redis 容器。

php 容器日志显示如下

docker logs -f php
Startingint(1)

【讨论】:

  • 是的!非常感谢 。有用。但是我需要php应用程序在通过healthcheck机制启动redis之前等待。你知道怎么做吗?
  • 嗨@lehan1819mailru,我在我的回答中更改了 docker-compose.yml 文件。请注意,我将 docker-compose.yml 中的“版本”更改为 2.1
猜你喜欢
  • 2021-08-26
  • 2020-12-18
  • 2018-12-31
  • 2021-12-03
  • 2018-02-01
  • 1970-01-01
  • 2020-02-22
  • 2021-12-04
  • 1970-01-01
相关资源
最近更新 更多