在 docker-compose.yaml 文件中的 docker 容器内运行命令的语法是什么?

问题描述 投票:0回答:1

我有一个图像定义如下:

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 docker-compose mysqli
1个回答
0
投票

docker-compose.yml 文件中的command应该是这样的:

command: sh -c 'docker-php-ext-install mysqli && apache2-foreground'

为什么你的 php-apache 停止运行,原因是:

命令:

sh -c  "docker-php-ext-install mysqli"
不在后台运行,这是容器保持运行所必需的

© www.soinside.com 2019 - 2024. All rights reserved.