在docker中运行包管理器

时间:2015-09-13 06:52:46

标签: php docker composer-php

我已经构建了一个用于PHP开发的图像,我很清楚我并没有真正想过如何访问我每天开发所需的工具。例如:composer,PHP的包管理器,每当composer.json更新时我都需要它运行。我认为值得在同一图像中安装这些工具,但后来我无法访问它们。所以,我可以:

  1. 为作曲家创建单独的图像并在不同的容器中运行
  2. 在我的主机上安装composer。
  3. 我想避免选项2),但是,有没有意义有一个像1)的设置?你们是怎么解决这个问题的?

1 个答案:

答案 0 :(得分:1)

除非你有一些非常具体的要求,否则有第三种选择:

使用docker exec命令连接到容器:

docker exec -it CONTAINER-NAME/ID COMMAND [ARG...]

以下是示例:

1:创建您的应用程序:

echo "<?php phpinfo();" > index.php

2:启动容器:

docker run -it --rm --name my-apache-php-app -p 80:80 -v "$PWD":/var/www/html php:5.6-apache

3:打开另一个终端窗口并在运行容器内执行所需的命令:

docker exec -it my-apache-php-app curl -sS https://getcomposer.org/installer | php
docker exec -it my-apache-php-app ls

如果你需要运行容器中的shell - 运行:

docker exec -it my-apache-php-app bash

那就是它!