markdown Shell用于使用Docker运行NPM,Composer和PHP之类的东西。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Shell用于使用Docker运行NPM,Composer和PHP之类的东西。相关的知识,希望对你有一定的参考价值。
# Shell functions to run things using Docker.
## Versions
Control the versions using environment variables, put this in your `.bashrc` or `.zshrc`.
``` bash
PHP_VERSION=7.1
NODE_VERSION=8.0
```
## Shell Functions
The shell functions below will run PHP, Composer, Node, NPM and Yarn using Docker, put these functions inside your .bashrc or .zshrc as well.
**PHP**
``` bash
php () {
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--volume $(pwd):/code \
--workdir /code \
--publish 8000:8000 \
--publish 8080:8080 \
php:$PHP_VERSION-cli php "$@"
}
```
**Composer**
``` bash
composer () {
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--volume $(pwd):/code \
--volume $HOME/.config/composer:/composer \
--workdir /code \
composer "$@"
}
```
**PHPUnit**
``` bash
phpunit () {
php vendor/bin/phpunit "$@"
}
```
**NodeJs**
``` bash
node () {
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--volume $(pwd):/code \
--workdir /code \
--publish 3000:3000 \
--publish 3030:3030 \
--publish 3333:3333 \
--publish 8000:8000 \
node:$NODE_VERSION node "$@"
}
```
**NPM**
``` bash
npm () {
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--volume $HOME/.config:$HOME/.config \
--volume $HOME/.npm:$HOME/.npm \
--volume $(pwd):/code \
--workdir /code \
--entrypoint /usr/local/bin/npm \
--publish 3000:3000 \
--publish 3030:3030 \
--publish 3333:3333 \
--publish 8000:8000 \
node:$NODE_VERSION "$@"
}
```
**YARN**
``` bash
yarn () {
yarnFile="$HOME/.yarnrc"
if [ ! -f $yarnFile ]; then
touch $yarnFile
fi
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--volume $HOME/.config:$HOME/.config \
--volume $HOME/.cache:$HOME/.cache \
--volume $yarnFile:$yarnFile \
--volume $(pwd):/code \
--workdir /code \
--entrypoint /usr/local/bin/yarn \
--publish 3000:3000 \
--publish 3030:3030 \
--publish 3333:3333 \
--publish 8000:8000 \
node:$NODE_VERSION "$@"
}
```
以上是关于markdown Shell用于使用Docker运行NPM,Composer和PHP之类的东西。的主要内容,如果未能解决你的问题,请参考以下文章
100 行 shell 写个 Docker
Docker-in-Docker 与 Gitlab 共享运行器,用于构建和推送 docker 镜像到注册表
markdown 用于在Docker容器中运行本地Node项目的个人备忘单
markdown 用于在Centos 7上创建VSI和安装Docker Engine的Terraform示例文件
sh 用于查找docker图像后代的Shell脚本
使用 shell 脚本在 docker 容器中运行脚本