我从头开始做一个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中,我很好,我只需要知道是否/为什么不能。
答案 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_USER
和MYSQL_PASSWORD
变量,并且这样做:
SET MYSQL_USER=myproject_user & SET MYSQL_PASSWORD & dev up -d