Задать вопрос
motokraft
@motokraft
Кратко о себе

Как запустить PHP файла внутри контейнера Docker?

// docker-compose.yaml
version: '3'

services:
  php:
    container_name: socket-php
    build:
      dockerfile: ./.docker/php/Dockerfile
      context: ./../
    ports:
      - 1614:80
    restart: always
    platform: linux/amd64


// Dockerfile
FROM php:8.2-cli

COPY ./../index.php /var/www/html/index.php
CMD [ "php", "-a", "/var/www/html/index.php" ]


// index.php

$f = fopen(__DIR__ . '/.log', 'a+');
$end = time();

while ((time() - $end) >= 1)
{ 
    fwrite($f, time() . PHP_EOL);
    $end = time();
}

fclose($f);


Не получается запустить PHP файл после запуска контейнера. Как видно в Docker desktop созданный контейнер автоматически пытается перезапуститься, однако в PHP файл есть бесконечный цикл который не позволяет выполнить файл ко конца.
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
php -a это режим интерактивного шелла
если надо выполнить файл то правильно php -f file.php

см. https://www.php.net/manual/en/features.commandline...

p.s. бесконечный цикл выглядит так
while (true) { 
    fwrite($f, time() . PHP_EOL);
}


а вот это условие с вероятностью 99.9999% не будет выполняться так как time() - $end будет меньше 1
while ((time() - $end) >= 1)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы