Запуск докера с помощью скрипта powershell dev - PullRequest
0 голосов
/ 23 января 2019

Я делаю проект Docker с нуля и следую учебному пособию (я следую Django2 WebDevelopment Cookbook).Я наткнулся на раздел, который я не знаю, как конвертировать в Powershell из Bash.У меня есть следующий скрипт в моем /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 голосов
/ 24 января 2019

Хорошо, после некоторой отладки я изменил скрипт 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...