Инструменты пользователя

Инструменты сайта


service:docker

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:docker [10.06.2024 14:43] – [Убрать повторяющиеся куски кода из docker-compose.yml] viacheslavservice:docker [05.02.2025 12:44] (текущий) – [Buildx / Buildkit] viacheslav
Строка 1: Строка 1:
 ====== Docker ====== ====== Docker ======
 +<WRAP right box 25%>
 +— What is the first clue to build the container?\\
 +— It must be bound in thews of invincible iron.\\
 +— What is the second clue to build the container?\\
 +— Bejewel the chest with the hallowed heart of glittering stone.\\
 +— What is the third clue to build the container?\\
 +— Gift it with the essence of dragon amber, born of earth and root.\\
 +— What is the fourth clue to build the container?\\
 +— A sacrifice of clay. The power to bind its parts.\\
 +— What is the fifth clue to build the container?\\
 +— Craft it from wood no mortal blade can carve. Find the wicked tree.\\
 +— What is the sixth clue to build the container?\\
 +— The strength of love denied. The soul of a dead hero shall empower it.\\
 +— What is the seventh clue to build the container?\\
 +— Temper it in the tears of the weeping moon.\\
 +— What is the eighth clue to build the container?\\
 +— Forged by the legendary Black Gnarl, beneath his binding song.\\
 +— Each of the hearts have I given.\\
 +— And each of the riddles have I returned. I am free! Stay at your task, my fool. No greater curse might I impart!
 +
 +//Anvil of Dawn//
 +</WRAP>
  
 ===== Обновление ===== ===== Обновление =====
Строка 12: Строка 34:
 https://stackoverflow.com/questions/49316462/how-to-update-existing-images-with-docker-compose https://stackoverflow.com/questions/49316462/how-to-update-existing-images-with-docker-compose
  
 +==== Buildx / Buildkit ====
 +Новый сборщик образов, который не требует установленного Docker engine. Это позволяет, например, собирать образы в кластере k8s.
 +
 +Установка
 +<code bash>
 +sudo apt install docker-buildx
 +</code>
 +
 +Сделать Buildkit сборщиком по умолчанию
 +<file json /etc/docker/daemon.json>
 +{
 +  "features": {
 +    "buildkit": true
 +  }
 +}
 +</file>
 +
 +<code bash>
 +sudo systemctl restart docker.service
 +</code>
 +
 +Если Buildkit не установлен по умолчанию, то запустить сборку через него можно через переменную.
 +<code bash>
 +DOCKER_BUILDKIT=1 docker build -t my_image .
 +</code>
 +https://docs.docker.com/build/buildkit/
 ===== Чистка ===== ===== Чистка =====
 <file bash /etc/crontab> <file bash /etc/crontab>
Строка 532: Строка 580:
 [[https://www.digitalocean.com/community/tutorials/how-to-containerize-a-laravel-application-for-development-with-docker-compose-on-ubuntu-18-04-ru|Контейнеризация приложения Laravel 6 для разработки с помощью Docker Compose в Ubuntu 18.04]] [[https://www.digitalocean.com/community/tutorials/how-to-containerize-a-laravel-application-for-development-with-docker-compose-on-ubuntu-18-04-ru|Контейнеризация приложения Laravel 6 для разработки с помощью Docker Compose в Ubuntu 18.04]]
  
 +==== nodejs ====
 +Сборка в каталоге, лежащем на хосте
 +<code bash>
 +docker run --rm -w /home/node -v ./source:/home/node node:16 npm run build
 +</code>
 +
 +Сложный и неэффективный вариант (пока не понял, что можно проще).\\
 +Интересный приём - heredoc для ''docker build''.
 +<code bash>
 +workdir=/home/node
 +imagename=front:temp
 +
 +docker build -t $imagename -f - . << EOF
 +FROM node:16
 +WORKDIR $workdir
 +COPY --chown=node:node source/ ./
 +USER node
 +# npm rebuild нужен для решения проблемы с правами cross-env: Permission denied
 +RUN npm rebuild && npm run build
 +EOF
 +
 +# Вытащить каталоги client и admin из образа с архивацией gzip
 +id=$(docker create $imagename)
 +for i in client admin
 +do
 +  docker cp $id:$workdir/$i - |gzip > result/$i.tar.gz
 +done
 +docker rm $id
 +</code>
 ==== Скачивание и пересылка образа в закрытый контур ==== ==== Скачивание и пересылка образа в закрытый контур ====
 В закрытом контуре интернета нет, поэтому на какой-то внешней машине: В закрытом контуре интернета нет, поэтому на какой-то внешней машине:
Строка 550: Строка 627:
 Выгрузка образов: https://docs.docker.com/reference/cli/docker/image/save/ Выгрузка образов: https://docs.docker.com/reference/cli/docker/image/save/
  
-На целевом сервереобъединение частей и загрузка образа+На целевом сервереобъединение частей и загрузка образа.
 <code bash> <code bash>
 cat tomcat_jre11_* > tomcat_jre11.tar.gz cat tomcat_jre11_* > tomcat_jre11.tar.gz
service/docker.1718030586.txt.gz · Последнее изменение: 30.07.2024 19:20 (внешнее изменение)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki