File tree Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change @@ -60,3 +60,18 @@ deploy:
6060
6161ssh :
6262 ssh root@` yq e ' .all.children.webservers.hosts.web1.ansible_host' ansible/inventory.yml`
63+
64+ # Для запуска x86-образа на ARM (например, Mac M1/M2):
65+ # docker run --platform linux/amd64 -p 3000:3000 -e SERVER_MESSAGE="Hexlet Awesome Server" hexletcomponents/devops-example-app
66+
67+ multiarch-build-app :
68+ docker buildx build --platform linux/amd64,linux/arm64 -t hexletcomponents/devops-example-app .
69+
70+ multiarch-build-caddy :
71+ docker buildx build --platform linux/amd64,linux/arm64 -t hexletcomponents/devops-example-caddy -f services/caddy/Dockerfile .
72+
73+ multiarch-push-app :
74+ docker buildx build --platform linux/amd64,linux/arm64 -t hexletcomponents/devops-example-app --push .
75+
76+ multiarch-push-caddy :
77+ docker buildx build --platform linux/amd64,linux/arm64 -t hexletcomponents/devops-example-caddy -f services/caddy/Dockerfile --push .
Original file line number Diff line number Diff line change @@ -11,6 +11,51 @@ docker run -p 3000:3000 -e SERVER_MESSAGE="Hexlet Awesome Server" -e ROLLBAR_TOK
1111# open http://0.0.0.0:3000 in browser
1212 ```
1313
14+ ## Запуск на Mac M1/M2 (ARM) и других архитектурах
15+
16+ Если при запуске контейнера возникает ошибка:
17+
18+ ```
19+ docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
20+ ```
21+
22+ Возможные решения:
23+
24+ ### 1. Использовать эмуляцию x86 через флаг --platform
25+
26+ ``` sh
27+ docker run --platform linux/amd64 -p 3000:3000 \
28+ -e SERVER_MESSAGE=" Hexlet Awesome Server" \
29+ hexletcomponents/devops-example-app
30+ ```
31+
32+ Docker Desktop для Mac M1/M2 поддерживает эмуляцию x86 (amd64) через QEMU. Это работает для большинства Node.js-приложений, но может быть медленнее.
33+
34+ ### 2. Собрать образ локально под ARM
35+
36+ ``` sh
37+ docker build -t hexletcomponents/devops-example-app .
38+ docker run -p 3000:3000 \
39+ -e SERVER_MESSAGE=" Hexlet Awesome Server" \
40+ hexletcomponents/devops-example-app
41+ ```
42+
43+ ### 3. Собрать и опубликовать multi-arch образ (рекомендовано)
44+
45+ ``` sh
46+ docker buildx build --platform linux/amd64,linux/arm64 -t hexletcomponents/devops-example-app --push .
47+ ```
48+
49+ После этого команда ` docker run ... ` будет работать на любой архитектуре.
50+
51+ ### 4. Проверить, что эмуляция включена
52+
53+ Если эмуляция не работает, выполните:
54+
55+ ``` sh
56+ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
57+ ```
58+
1459## Requirements
1560
1661* Make
You can’t perform that action at this time.
0 commit comments