Cтавим WordPress в Docker Desktop используя файл docker-compose, будем потом использовать эту чистую установку WordPress в контейнере для переноса сюда сайта с хостинга и превращение в статику.
Я взял официальный пример и немного подправил его
restart: unless-stopped — поменял тип запуска если был остановлен
depends_on: добавил зависимость
— «80:80» — сделал порт 80 так как удобно будет, это на ваш выбор (обычно 80 порт занят BranchCache — нужно стопить службу) можно так «8000:80»
volumes:
— ./www:/var/www/html — удобно когда файлы видны в подпапки и можно напрямую их править, а не зализать в контейнер
пример файл docker-compose.yml для WordPress в Docker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
version: "3.9" services: db: image: mysql:5.7 volumes: - db:/var/lib/mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - ./www:/var/www/html ports: - "80:80" restart: unless-stopped environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db: |
Запускаем наши два контейнера
docker-compose up -d
Заходим на сайт
http://localhost
Уточнения :
Вот теперь у нас есть чистая установка wordpress в контейнере, локально взяли порт 80, отразили на хост папку с файликами сайта, а базу MySQL сохранили в volumes db в windows он будет тут \\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
Если мы бэкапим базу из контейнера docker
1 |
docker exec tangoargentino_db /usr/bin/mysqldump -u root --password=somewordpress wordpress > backup.sql |
Если мы хотим ресторить базу в docker контейнер
1 |
docker exec -i tangoargentino_db /usr/bin/mysql -u root --password=somewordpress wordpress < hosting_db_tango.sql |