在docker中运行包管理器



我已经为PHP开发构建了一个图像,但很明显,我并没有真正考虑如何访问每天开发所需的工具。例如:composer, PHP的包管理器,我需要它在编写时运行。json更新。我认为在同一个映像中安装这些工具是值得的,但是我没有办法访问它们。所以,我可以:

  1. 为composer创建单独的图像并在不同的容器中运行
  2. 在我的主机上安装composer。

我想避免选项2),但是,有一个像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

就是这样!

相关内容

  • 没有找到相关文章

最新更新