我有一个图像定义如下:
php-enc:
container_name: php-apache
image: php:8.0-apache
volumes:
- ./php/src:/var/www/html/
ports:
- 8000:80
depends_on:
- db
现在我想在构建这个之后在这个容器中运行一个命令。我正在做的是使用命令
docker exec -it php-apache bash
这将我带入容器,我使用另一个命令
docker-php-ext-install mysqli
这个mysqli安装到php-apache容器后
现在我想将所有这些都包含到 docker-compose 文件中,所以我尝试了
command: sh -c "docker-php-ext-install mysqli"
php-enc:
container_name: php-apache
image: php:8.0-apache
command: sh -c "docker-php-ext-install mysqli"
volumes:
- ./php/src:/var/www/html/
ports:
- 8000:80
depends_on:
- db
但它不起作用。容器停止运行
我想知道如何在 docker-compose.yml 中使用命令
docker-compose.yml 文件中的command应该是这样的:
command: sh -c 'docker-php-ext-install mysqli && apache2-foreground'
为什么你的 php-apache 停止运行,原因是:
命令:
sh -c "docker-php-ext-install mysqli"
不在后台运行,这是容器保持运行所必需的