Задать вопрос

Как переписать файл под Windows?

Здравствуйте!

Помогите пожалуйста разрешить следующий вопрос:

На работе сменили ОС (Была Linux - поставили Windows...нужен фотошоп и т.д), и вот какая случилась проблема:

У нас сайт на WP (+git - versionpress) - когда работаем - запускаем в докере..все настроено под Linux..а теперь нужно переписать файл инициализации сайта на локалке для Windows (терпинал то другой)

Вот сам файл для инициализации сайта на локалке:
#!/usr/bin/env bash
set -x
set -e
docker-compose down
docker system prune -f && docker volume prune -f
docker-compose up --build -d
docker cp ~/.ssh/id_rsa wordpressweb:/var/www/.ssh/
docker cp ~/.ssh/known_hosts wordpressweb:/var/www/.ssh/
docker exec wordpressweb chown -R www-data:www-data /var/www/.ssh/
docker exec wordpressweb chown www-data:www-data /var/www/html/wp-content/
docker exec wordpressweb chown www-data:www-data /var/www/html/wp-content/plugins/
docker exec wordpressweb chown www-data:www-data /var/www/html/wp-content/themes/
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/plugins/wp-site-slick-slider-and-image-carousel
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/plugins/email-subscribers
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/themes/site-tech
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/themes/stub-site-tech
docker exec -u www-data wordpressweb git init
docker exec -u www-data wordpressweb git remote add origin git@git.site:site/site-versionpress-wordpress.git
docker exec -u www-data wordpressweb git fetch
docker exec -u www-data wordpressweb git reset --hard origin/master
docker exec -u www-data wordpressweb git clean -f -d --exclude="wp-content/plugins/wp-site-slick-slider-and-image-carousel/ wp-content/plugins/email-subscribers/ wp-content/themes/stub-site-tech/ wp-content/themes/site-tech/"
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/plugins/wp-site-slick-slider-and-image-carousel
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/plugins/email-subscribers
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/themes/site-tech
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/themes/stub-site-tech
docker exec -u www-data wordpressweb  git config --replace-all user.name "$(git config --global user.name)"
docker exec -u www-data wordpressweb  git config --replace-all user.email "$(git config --global user.email)"
docker exec wordpressweb apt-get update
docker exec wordpressweb apt-get install -y mariadb-client nano
docker exec wordpressweb mkdir /var/www/.local/
docker exec wordpressweb chown www-data:www-data /var/www/.local/
docker exec -u www-data wordpressweb wp core install --url="http://192.168.1.37:8000" --title=site --admin_user=admin --admin_password=admin --admin_email=admin@gmail.com
docker exec -u www-data wordpressweb wp plugin install https://github.com/versionpress/versionpress/releases/download/4.0-beta2/versionpress-4.0-beta2.zip --activate
docker exec -u www-data wordpressweb wp vp restore-site --siteurl="http://192.168.1.37:8000" --yes
docker exec -u www-data wordpressweb wp user list
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/plugins/wp-site-slick-slider-and-image-carousel
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/plugins/email-subscribers
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/themes/site-tech
docker exec wordpressweb chmod -R a+rw /var/www/html/wp-content/themes/stub-site-tech
#docker exec -u www-data wordpressweb wp user create admin admin@gmail.com --user_pass=admin --role=administrator


В файле запросы расписаны под ubuntu..на винде не работает(
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Средний 4 комментария
Решения вопроса 1
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
вообще в вашем коде присутствуют чисто линуксовые только две команды баша
set -x что есть по сути дебаг режим - выводит команды которые баш выполняет
set -e стоп скрипта если команду выполнить нельзя
заменять их аналогами или просто выкинуть - решать вам.

Остальное под виндой должно работать, если вы поставите docker desktop для windows

поправить нужно будет:
- переписать пути в командах docker cp на виндовые
- возмжно нужно добавить шареные диски в docker desktop чтобы папки из которых копируете файлы в контейнер были доступны контейнеру (а может быть и не надо, я с docker cp практически не работал)

Альтернатива:
ставим git с git-bash
и запускаем файл без изменений в этой оболочке.

или включаем превью режим в винде и ставим WSL2, включаем в настройках докера использование WSL и работаем через подсистему Windows для Linux
и точно так же без изменений файл используете
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Oxyd
@Oxyd
Linux enthusiast
Возможно вас спасёт WSL. Тогда и извращения с переписыванием не понадобятся.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы