Запуск докера с помощью скрипта powershell dev

Я делаю проект докера с нуля и следую учебному пособию (я следую кулинарной книге Django2 WebDevelopment). Я наткнулся на раздел, который не знаю, как конвертировать в 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, мне просто нужно знать, если и почему это не может.

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, после некоторой отладки я изменил сценарий 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

Другие вопросы по теме