технология_docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
технология_docker [2026/01/07 09:15]
val [Создание образа для приложения с использованием Dockerfile]
технология_docker [2026/03/18 15:52] (current)
val [Создание образа для приложения с использованием Dockerfile]
Line 8: Line 8:
 ===== Методические идеи ===== ===== Методические идеи =====
  
-  * Добавить запись в журнал передаваемых скрипту webd заголовков 
   * Использовать переменную окружения,​ передаваемую контейнеру для включения/​выключения режима отладки/​записи в журнал ​   * Использовать переменную окружения,​ передаваемую контейнеру для включения/​выключения режима отладки/​записи в журнал ​
  
Line 32: Line 31:
   "​registry-mirrors":​ ["​https://​mirror.gcr.io"​]   "​registry-mirrors":​ ["​https://​mirror.gcr.io"​]
 } }
 +</​code><​code>​
 +# service docker reload
 </​code>​ </​code>​
- 
 ==== Настройка загрузки образов через proxy ==== ==== Настройка загрузки образов через proxy ====
  
Line 220: Line 220:
 #FROM debian #FROM debian
 FROM debian:​bookworm FROM debian:​bookworm
 +
 +#ENV DEBIAN_FRONTEND=noninteractive
  
 RUN cp /​usr/​share/​zoneinfo/​Etc/​GMT-3 /​etc/​localtime \ RUN cp /​usr/​share/​zoneinfo/​Etc/​GMT-3 /​etc/​localtime \
Line 254: Line 256:
   * [[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 283: Line 286:
  
 #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 288: Line 293:
 ### 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 295: Line 300:
 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 400: Line 406:
  
 <​code>​ <​code>​
-MY_ID=$(docker run -d --rm gowebd) +MY_ID=$(docker run -d --rm gowebd) 
-MY_IP=$(docker inspect -f '​{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'​ $MY_ID) +MY_IP=$(docker inspect -f '​{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'​ $MY_ID) 
-docker run --rm alpine/curl -sS $MY_IP +docker run --rm alpine/curl -sS $MY_IP 
-docker stop $MY_ID+docker stop $MY_ID
 </​code>​ </​code>​
  
Line 542: Line 548:
  
   * [[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>​
Line 724: Line 735:
   -v $(pwd):/​workspace \   -v $(pwd):/​workspace \
   -v ~/​.docker/​config.json:/​kaniko/​.docker/​config.json \   -v ~/​.docker/​config.json:/​kaniko/​.docker/​config.json \
 +  -e KANIKO_REGISTRY_MIRROR="​mirror.gcr.io"​ \
   gcr.io/​kaniko-project/​executor:​latest \   gcr.io/​kaniko-project/​executor:​latest \
   --skip-tls-verify --log-timestamp \   --skip-tls-verify --log-timestamp \
Line 777: Line 789:
   <BODY text="​blue">​   <BODY text="​blue">​
     <​H1><​A HREF=/​cgi-bin/​apwebd/>​Login to ${APWEBD_HOSTNAME}</​A></​H1>​     <​H1><​A HREF=/​cgi-bin/​apwebd/>​Login to ${APWEBD_HOSTNAME}</​A></​H1>​
-    Version: 1.2+    Version: 1.1
   </​BODY>​   </​BODY>​
 </​HTML>​ </​HTML>​
Line 833: Line 845:
 echo echo
  
-echo "<​h1 style=\"​color:​blue;​\">​Привет ${OIDC_CLAIM_preferred_username}</​h1>"​+echo "<​h1 style=\"​color:​blue;​\">​Привет ${OIDC_CLAIM_given_name}</​h1>"​
  
 echo "<​pre>";​ env; echo "</​pre>"​ echo "<​pre>";​ env; echo "</​pre>"​
Line 839: Line 851:
 ~/apwebd# chmod +x rootfs/​usr/​lib/​cgi-bin/​apwebd rootfs/​start.sh ~/apwebd# chmod +x rootfs/​usr/​lib/​cgi-bin/​apwebd rootfs/​start.sh
  
-~/apwebd$ docker build -t server.corp13.un:​5000/​student/​apwebd:​ver1.. +~/apwebd$ docker build -t gitlab.corpX.un:​5000/​student/​apwebd:​ver1..
- +
-~/apwebd$ docker run -e APWEBD_HOSTNAME=apwebd.corp13.un -e KEYCLOAK_HOSTNAME=keycloak.corp13.un -e REALM_NAME=corp13 -itd --rm -P server.corp13.un:​5000/​student/​apwebd:​ver1.2+
  
-~/apwebd$ docker run -e APWEBD_HOSTNAME=apwebd.corp13.un -e KEYCLOAK_HOSTNAME=keycloak.corp13.un -e REALM_NAME=corp13 ​-itd --entrypoint bash server.corp13.un:​5000/​student/​apwebd:​ver1.2+~/apwebd$ docker run -e APWEBD_HOSTNAME=apwebd.corpX.un -e KEYCLOAK_HOSTNAME=keycloak.corpX.un -e REALM_NAME=corpX -itd --rm -P gitlab.corpX.un:​5000/​student/​apwebd:​ver1.1
  
-~/apwebd$ docker push server.corp13.un:​5000/​student/​apwebd:​ver1.2+~/apwebd$ docker push gitlab.corpX.un:​5000/​student/​apwebd:​ver1.1
 </​code>​ </​code>​
  
технология_docker.1767766555.txt.gz · Last modified: 2026/01/07 09:15 by val