【docker】docker镜像使用composer

PHP开发 小铁匠 2019-01-24

docker镜像使用composer

在使用docker部署php运行环境时php在一个单独的容器内,在容器内使用somposer出现Do not run Composer as root/super user!
这个问题是因为安全原因禁止composer使用root用户运行,在容器内新建一个用户去运行总感觉不妥,这时候我们可以采用docker镜像使用composer。

  1. 拉取composer镜像
$ docker pull graze/composer
  1. composer install 使用方法
$ docker run --rm -it \
  -v $(pwd):/usr/src/app \
  -v ~/.composer:/home/composer/.composer \
  -v ~/.ssh/id_rsa:/home/composer/.ssh/id_rsa:ro \
  graze/composer
  1. 这样使用很麻烦,我们可以用bash脚本加别名简化。创建composer.sh文件
$ vim composer.sh

写入以下内容

#!/bin/bash

docker run --rm -it -v $(pwd):/usr/src/app -v ~/.composer:/home/composer/.composer -v ~/.ssh/id_rsa:/home/composer/.ssh/id_rsa:ro graze/composer $@
  1. 设置别名
$ vim ~/.bashrc

增加一行

alias composer="/xxx/composer.sh"
  1. 使别名生效
$ source ~/.bashrc
  1. 测试一下
$ composer
-bash: /xxx/composer.sh: Permission denied

提示没有权限,给composer.sh赋权限。

7.再次测试,成功。

$ composer
  ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.5.1 2017-08-09 16:07:22

------ 本文结束 感谢阅读 ------