This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
технология_docker [2026/02/11 08:16] val [Создание образа для приложения с использованием Dockerfile] |
технология_docker [2026/07/30 12:07] (current) val [Создание образа для приложения с использованием Dockerfile] |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| * [[https://www.upguard.com/articles/docker-vs-lxc|Docker vs LXC]] | * [[https://www.upguard.com/articles/docker-vs-lxc|Docker vs LXC]] | ||
| * [[https://youtu.be/QF4ZF857m44|youtube/Артем Матяшов/Основы Docker. Большой практический выпуск]] | * [[https://youtu.be/QF4ZF857m44|youtube/Артем Матяшов/Основы Docker. Большой практический выпуск]] | ||
| + | |||
| + | * [[https://habr.com/ru/articles/1041784/|Best Practices по Dockerfile: от базового образа и кеша до SBOM, Cosign и CI/CD]] | ||
| Line 67: | Line 69: | ||
| <code> | <code> | ||
| # docker run hello-world | # docker run hello-world | ||
| + | |||
| + | # docker run -it --rm busybox | ||
| # docker events --since '10m' | # docker events --since '10m' | ||
| Line 144: | Line 148: | ||
| #!/bin/sh | #!/bin/sh | ||
| - | /etc/init.d/inetutils-inetd start | + | #/etc/init.d/inetutils-inetd start |
| + | /usr/sbin/inetutils-inetd -d | ||
| bash | bash | ||
| Line 188: | Line 193: | ||
| <code> | <code> | ||
| lan# mkdir -p /root/webd/ && cd /root/webd/ | lan# mkdir -p /root/webd/ && cd /root/webd/ | ||
| - | или | ||
| - | gitlab-runner@server:~$ mkdir -p ~/webd/webd/ && cd ~/webd/webd/ | ||
| lan:~/webd# scp server:/usr/local/sbin/webd . | lan:~/webd# scp server:/usr/local/sbin/webd . | ||
| - | или | ||
| - | server# cp /usr/local/sbin/webd . | ||
| - | или | ||
| </code> | </code> | ||
| * [[Средства программирования shell#Web сервер на shell]] | * [[Средства программирования shell#Web сервер на shell]] | ||
| Line 204: | Line 204: | ||
| #!/bin/sh | #!/bin/sh | ||
| - | /etc/init.d/inetutils-inetd start | + | #/etc/init.d/inetutils-inetd start |
| + | inetutils-inetd --foreground & | ||
| touch /var/log/webd.log | touch /var/log/webd.log | ||
| Line 256: | Line 257: | ||
| * [[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?]] | ||
| + | * [[https://hub.docker.com/_/python]] | ||
| <code> | <code> | ||
| :~/pywebd$ ## mkdir etc/; cp -rv /etc/pywebd/ etc/ | :~/pywebd$ ## mkdir etc/; cp -rv /etc/pywebd/ etc/ | ||
| Line 266: | Line 268: | ||
| </code><code> | </code><code> | ||
| FROM python:3.11-alpine | FROM python:3.11-alpine | ||
| + | #FROM python:3.14-alpine | ||
| #RUN pip install --root-user-action=ignore --upgrade pip | #RUN pip install --root-user-action=ignore --upgrade pip | ||
| Line 278: | Line 281: | ||
| #ENV PATH="/home/myuser/.local/bin:${PATH}" | #ENV PATH="/home/myuser/.local/bin:${PATH}" | ||
| + | #ENV https_proxy=http://proxy.isp.un:3128 | ||
| RUN pip install -r requirements.txt | RUN pip install -r requirements.txt | ||
| #RUN pip install --user -r requirements.txt | #RUN pip install --user -r requirements.txt | ||
| Line 285: | Line 289: | ||
| #COPY --chown=myuser:myuser app.py . | #COPY --chown=myuser:myuser app.py . | ||
| + | |||
| + | ## COPY --chown=myuser:myuser gunicorn.conf.py . | ||
| ## COPY --chown=myuser:myuser etc/ /etc/ | ## COPY --chown=myuser:myuser etc/ /etc/ | ||
| ## COPY --chown=myuser:myuser var/ /var/ | ## COPY --chown=myuser:myuser var/ /var/ | ||
| Line 290: | Line 296: | ||
| ### ADD www.tgz /var/ | ### ADD www.tgz /var/ | ||
| - | ### ENV PYWEBD_PORT=4080 | + | # ENV PYWEBD_PORT=4080 |
| - | ### ENV PYWEBD_DOC_ROOT=/var/www/ | + | # ENV PYWEBD_DOC_ROOT=/var/www/ |
| ### EXPOSE 4080 | ### EXPOSE 4080 | ||
| Line 297: | Line 303: | ||
| ENTRYPOINT ["python"] | ENTRYPOINT ["python"] | ||
| CMD ["app.py"] | CMD ["app.py"] | ||
| + | # ENTRYPOINT ["gunicorn","-c","gunicorn.conf.py","app:app"] | ||
| </code><code> | </code><code> | ||
| :~/pywebd$ time docker build -t pywebd . | :~/pywebd$ time docker build -t pywebd . | ||
| Line 316: | Line 323: | ||
| </code><code> | </code><code> | ||
| FROM python:3.11-alpine | FROM python:3.11-alpine | ||
| + | #FROM python:3.14.5-alpine | ||
| RUN pip install --root-user-action=ignore --upgrade pip | RUN pip install --root-user-action=ignore --upgrade pip | ||
| Line 544: | Line 552: | ||
| * [[https://kompose.io/|Go from Docker Compose to Kubernetes]] | * [[https://kompose.io/|Go from Docker Compose to Kubernetes]] | ||
| + | |||
| + | ==== Установка ==== | ||
| <code> | <code> | ||
| # apt install docker-compose docker.io | # apt install docker-compose docker.io | ||
| + | </code> | ||
| + | ==== Пример развертывания ==== | ||
| + | <code> | ||
| # cat docker-compose.yml | # cat docker-compose.yml | ||
| </code><code> | </code><code> | ||