This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
технология_docker [2025/03/04 10:09] val [Инструмент kaniko] |
технология_docker [2025/06/12 08:50] (current) val [Создание образа для приложения с использованием Dockerfile] |
||
---|---|---|---|
Line 59: | Line 59: | ||
# docker info | # docker info | ||
+ | </code> | ||
+ | ==== Запуск контейнеров ==== | ||
+ | * [[https://stackoverflow.com/questions/41694329/docker-run-override-entrypoint-with-shell-script-which-accepts-arguments|Docker run override entrypoint with shell script which accepts arguments]] | ||
+ | * Запуск сервиса TACACS+ в [[Сервис TACACS+#Docker]] | ||
+ | |||
+ | <code> | ||
# docker run hello-world | # docker run hello-world | ||
Line 174: | Line 180: | ||
* [[#Запуск в режиме демона и подключение к контейнеру]] из полученного образа | * [[#Запуск в режиме демона и подключение к контейнеру]] из полученного образа | ||
==== Создание образа для приложения с использованием Dockerfile ==== | ==== Создание образа для приложения с использованием Dockerfile ==== | ||
+ | |||
+ | * [[https://habr.com/ru/companies/slurm/articles/329138/|ENTRYPOINT vs CMD: назад к основам]] | ||
* [[Сервис TACACS+]] | * [[Сервис TACACS+]] | ||
Line 244: | Line 252: | ||
=== Приложение python pywebd === | === Приложение python pywebd === | ||
- | * [[Язык программирования Python]] | + | * [[Язык программирования Python#Flask Gunicorn]] |
* [[https://stackoverflow.com/questions/49955097/how-do-i-add-a-user-when-im-using-alpine-as-a-base-image|How do I add a user when I'm using Alpine as a base image?]] | * [[https://stackoverflow.com/questions/49955097/how-do-i-add-a-user-when-im-using-alpine-as-a-base-image|How do I add a user when I'm using Alpine as a base image?]] | ||
Line 296: | Line 304: | ||
* [[#Запуск в режиме демона и подключение к контейнеру]] | * [[#Запуск в режиме демона и подключение к контейнеру]] | ||
+ | |||
+ | === Приложение python pywebd2 === | ||
+ | |||
+ | * [[Язык программирования Python#FastAPI Uvicorn]] | ||
+ | |||
+ | <code> | ||
+ | ~/pywebd2# cat Dockerfile | ||
+ | </code><code> | ||
+ | FROM python:3.11-alpine | ||
+ | |||
+ | RUN pip install --root-user-action=ignore --upgrade pip | ||
+ | |||
+ | RUN pip install poetry | ||
+ | |||
+ | RUN adduser -D myuser | ||
+ | USER myuser | ||
+ | WORKDIR /home/myuser | ||
+ | |||
+ | COPY --chown=myuser:myuser . . | ||
+ | |||
+ | RUN poetry install | ||
+ | |||
+ | ENTRYPOINT ["poetry", "run"] | ||
+ | CMD ["python3", "app.py"] | ||
+ | </code><code> | ||
+ | ~/pywebd2# time docker build -t pywebd2 . | ||
+ | |||
+ | # docker run -d -p 8000 --rm pywebd2 | ||
+ | |||
+ | # docker run -d -p 4080 --rm pywebd2 uvicorn app:app --reload --host 0.0.0.0 --port 4080 | ||
+ | </code> | ||
=== Приложение golang gowebd === | === Приложение golang gowebd === | ||
Line 549: | Line 588: | ||
# docker-compose rm | # docker-compose rm | ||
+ | |||
+ | # docker volume inspect root_vol1 | ||
# docker volume rm root_vol1 | # docker volume rm root_vol1 | ||
Line 675: | Line 716: | ||
--dockerfile=./Dockerfile \ | --dockerfile=./Dockerfile \ | ||
--context=/workspace \ | --context=/workspace \ | ||
- | --destination=server.corpX.un:5000/student/gowebd:ver1.1 | + | --destination=server.corpX.un:5000/student/gowebd |
</code><code> | </code><code> | ||
или, интерактивно: | или, интерактивно: | ||
Line 692: | Line 733: | ||
</code><code> | </code><code> | ||
# docker run --pull=always --name gowebd -itd --rm \ | # docker run --pull=always --name gowebd -itd --rm \ | ||
- | -p 8000:80 server.corpX.un:5000/student/gowebd:ver1.1 | + | -p 8000:80 server.corpX.un:5000/student/gowebd |
</code> | </code> | ||
==== Приложение apwebd ==== | ==== Приложение apwebd ==== |