docker安装的php 在cli中使用

1: 修改 ~/.bashrc 中新增

php7 () {
    tty=
    tty -s && tty=--tty
    docker run \
        $tty \
        --interactive \
        --rm \
        --volume /website:/website:rw \
        --workdir /website/project \
        --network=dnmp_dnmp \
        dnmp_php php "$@"
}

–network=dnmp_dnmp 重要, 不然连不上数据库, 可通过docker inspect php | grep NetworkMode 查看
dnmp_php php “$@” dnmp_php 是在 php7 函数中定义的一个变量,用于存储包含 PHP 的 Docker 容器的名称。当您调用 php7 函数时,它会在名为 dnmp_php 的 Docker 容器中执行您传递给函数的 PHP 命令,这些命令作为参数传递给函数并以 $@ 的形式传递给 docker run 命令中的 php 命令。

2: 宿主机 supervisor 中使用

command=/bin/bash -c "source /root/.bashrc && cd /website/project && php7 index.php admin/mq/receive_stock"

这样发现, 如果supervisor 有7个应用, 就会启动7个容器

优化后

1: 先运行一个容器

docker run --interactive --tty  --network=dnmp_dnmp     --volume /website:/www:rw     --workdir /www    --name php74 --ip 192.168.0.33     dnmp_php

2: ~/.bashrc 脚本

php74 () {
    tty=
    tty -s && tty=--tty
    docker exec $tty php74 php "$@"
}

note: 通过php74函数去进入docker php74的容器, 在执行后续操作

3: supervisor 配置文件

command=/bin/bash -c "source /root/.bashrc && php74 index.php admin/mq/receive_stock"

你可能感兴趣的:(docker,php,容器)