使用Powershell开发脚本启动Docker

时间:2019-01-23 11:07:23

标签: mysql django docker

我从头开始做一个docker项目,并遵循一个教程(我遵循Django2 WebDevelopment Cookbook)。我遇到了一个部分,我不知道如何从Bash转换为Powershell。我的/bin/dev.ps1

中包含以下脚本
#!/usr/bin/env bash
# bin/dev
# environment variables to be defined externally for security
# - MYSQL_USER
# - MYSQL_PASSWORD
# - MYSQL_ROOT_PASSWORD
DOMAIN=myproject.local
DJANGO_USE_DEBUG=1 \
DJANGO_USE_DEBUG_TOOLBAR=1 \
SITE_HOST="$DOMAIN" \
MEDIA_HOST="media.$DOMAIN" \
STATIC_HOST="static.$DOMAIN" \
MYSQL_HOST="localhost" \
MYSQL_DATABASE="myproject_db" \
  docker-compose $*

我已经将文件编辑为这样,因为以上内容不适用于Windows:

#!/usr/bin/env bash
# bin/dev
# environment variables to be defined externally for security
# - MYSQL_USER
# - MYSQL_PASSWORD
# - MYSQL_ROOT_PASSWORD
$DOMAIN="myproject.local"
$DJANGO_USE_DEBUG=1 
$DJANGO_USE_DEBUG_TOOLBAR=1 
$SITE_HOST="$DOMAIN" 
$MEDIA_HOST="media.$DOMAIN" 
$STATIC_HOST="static.$DOMAIN" 
$MYSQL_HOST="localhost" 
$MYSQL_DATABASE="myproject_db"
  docker-compose

现在,当您运行docker-compose而没有任何参数时,它为我提供了标准输出。我正在尝试从终端运行以下命令:

MYSQL_USER=myproject_user \
> MYSQL_PASSWORD=pass1234 \
> ./bin/dev up -d

显然,这在Windows中不起作用,甚至给我一个错误,即找不到MYSQL_USER命令或其他任何内容。如何编辑PS文件,以便可以在Windows上使用它?以及如何运行它,以便它也将参数传递给文件?

编辑:如果这在Windows中不起作用,并且仅在Linux中,我很好,我只需要知道是否/为什么不能。

1 个答案:

答案 0 :(得分:0)

好的,经过一些调试,我将powershell脚本更改为.bat文件。内容如下:

::!/usr/bin/env bash
:: bin/dev
:: environment variables to be defined externally for security
:: - MYSQL_USER
:: - MYSQL_PASSWORD
:: - MYSQL_ROOT_PASSWORD
SET DOMAIN=myproject.local

SET DJANGO_USE_DEBUG=1 
SET DJANGO_USE_DEBUG_TOOLBAR=1 
SET SITE_HOST=%DOMAIN% 
SET MEDIA_HOST=media.%DOMAIN% 
SET STATIC_HOST=static.%DOMAIN% 
SET MYSQL_HOST=localhost
SET MYSQL_DATABASE=myproject_db
  docker-compose %*

我可以按照教程中的描述正常运行文件;我需要设置MYSQL_USERMYSQL_PASSWORD变量,并且这样做:

SET MYSQL_USER=myproject_user & SET MYSQL_PASSWORD & dev up -d