У меня есть следующий файл конфигурации для проекта.
Он не работает в Windows как таковой.У меня установлен PowerShell, подсистема Linux, Docker запущен и т. Д.
Какие шаги я должен выполнить, чтобы проект работал на Windows?Я немного заблудился. Могу ли я запустить его без Cygwin?
#!/usr/bin/env bash
CYAN='\033[0;36m'
BLUE='\033[0;34m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
yell() { echo "$0: $*" >&2; }
die() { yell "$*"; exit 111; }
try() { "$@" || die "cannot $*"; }
# Path to your hosts file
hostsFile="/etc/hosts"
# Default IP address for host
ip="127.0.0.1"
hostnames="api.foodmeup.local"
removeHost() {
if [ -n "$(grep -p "[[:space:]]$1" /etc/hosts)" ]; then
echo "$1 found in $hostsFile. Removing now...";
try sudo sed -ie "/[[:space:]]$1/d" "$hostsFile";
else
yell "$1 was not found in $hostsFile";
fi
}
addHost() {
if [ -n "$(grep -p "[[:space:]]$1" /etc/hosts)" ]; then
yell "$1, already exists: $(grep $1 $hostsFile)";
else
echo "Adding $1 to $hostsFile...";
try printf "%s\t%s\n" "$ip" "$1" | sudo tee -a "$hostsFile" > /dev/null;
if [ -n "$(grep $1 /etc/hosts)" ]; then
echo "$1 was added succesfully:";
echo "$(grep $1 /etc/hosts)";
else
die "Failed to add $1";
fi
fi
}
addLinuxSSL() {
sudo mkdir -p /usr/local/share/ca-certificates/foodmeup.local
sudo cp ./.docker/nginx/ssl/foodmeup-ca.cert.pem /usr/local/share/ca-certificates/foodmeup.local
sudo update-ca-certificates
}
addMacSSL() {
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./.docker/nginx/ssl/foodmeup-ca.cert.pem
}
addCygwinSSL() {
echo "Unable to add SSL for CygWin platform";
exit;
}
while true; do
echo "Do you wish to init the FoodMeUp API project?";
read -p "(Y/N) " yn
case $yn in
[Yy]* )
echo "";
echo -e "${BLUE}Setting local host names...${NC}";
IFS=', '; array=($hostnames)
for host in ${array[@]}; do addHost $host; done
echo -e "${GREEN}Host names set!${NC}";
echo "";
echo "";
echo -e "${BLUE}Prepping environment, please wait...${NC}";
aws s3 cp s3://fmu-dev/ssl ./.docker/nginx/ssl/ --recursive --profile fmu
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*) addLinuxSSL;;
Darwin*) addMacSSL;;
CYGWIN*) addCygwinSSL;;
*) exit;;
esac
rm ./.docker/nginx/ssl/foodmeup-ca.cert.pem
aws s3 cp s3://fmu-dev/env-api-devel ./.env --profile fmu
mkdir -p ./var/cache ./var/logs ./var/jwt ./var/cloud ./public/uploads
aws s3 cp s3://fmu-dev/fmu-google-cloud.json ./var/cloud/FoodMeUp-dc2389a0a0cd.json --profile fmu
JWT_PASSPHRASE=$(grep JWT_PASSPHRASE .env | cut -d '=' -f 2-)
openssl genrsa -passout pass:${JWT_PASSPHRASE} -out ./var/jwt/private.pem -aes256 4096
openssl rsa -passin pass:${JWT_PASSPHRASE} -pubout -in ./var/jwt/private.pem -out ./var/jwt/public.pem
echo -e "${GREEN}Environment all set!${NC}";
echo "";
echo -e "${BLUE}Building Docker containers, please wait...${NC}";
docker-compose up -d nginx;
docker-compose up -d postgres;
docker-compose up -d rabbitmq;
echo -e "${GREEN}Docker containers built!${NC}";
echo "";
echo -e "${BLUE}Installing Composer dependencies, please wait...${NC}";
docker exec -ti fmu_backend-php composer install --no-ansi --no-interaction --no-progress --no-suggest --optimize-autoloader;
echo -e "${GREEN}Composer dependencies installed!!${NC}";
echo "";
echo -e "${BLUE}Generating assets, please wait...${NC}";
docker exec -ti fmu_backend-php bin/console assets:install
echo -e "${GREEN}Assets generated!${NC}";
echo "";
echo -e "${BLUE}Initializing application, please wait...${NC}";
docker exec -ti fmu_backend-php /var/www/bin/phing init
echo -e "${GREEN}Application initialized!${NC}";
echo "";
echo -e "${GREEN}[ALL DONE]${NC}";
break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
echo -e "${GREEN}Project successfully installed${NC}";