User Tools

Site Tools


технология_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 [2025/10/10 14:58]
val [Приложение apwebd]
технология_docker [2026/01/28 15:38] (current)
val [Инструмент kaniko]
Line 8: Line 8:
 ===== Методические идеи ===== ===== Методические идеи =====
  
-  * Добавить запись в журнал передаваемых скрипту webd заголовков 
   * Использовать переменную окружения,​ передаваемую контейнеру для включения/​выключения режима отладки/​записи в журнал ​   * Использовать переменную окружения,​ передаваемую контейнеру для включения/​выключения режима отладки/​записи в журнал ​
  
Line 16: Line 15:
  
   * [[https://​docs.docker.com/​engine/​install/​ubuntu/​|Install Docker Engine on Ubuntu]]   * [[https://​docs.docker.com/​engine/​install/​ubuntu/​|Install Docker Engine on Ubuntu]]
-  * [[https://​docs.docker.com/​engine/​installation/​linux/​docker-ce/​debian/​|Get Docker CE for Debian]]+  * [[https://​docs.docker.com/​engine/​installation/​linux/​docker-ce/​debian/​|Get Docker CE for Debian]] ​(VERSION_STRING=5:​24.0.9-1~debian.12~bookworm)
 <​code>​ <​code>​
 # apt install docker.io # apt install docker.io
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 187: Line 187:
 === Приложение bash webd === === Приложение bash webd ===
 <​code>​ <​code>​
-server# 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/​ gitlab-runner@server:​~$ mkdir -p ~/​webd/​webd/​ && cd ~/​webd/​webd/​
  
-server# cp /​usr/​local/​sbin/​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]]
 <​code>​ <​code>​
-gitlab-runner@server:​~/​webd/​webd$ ​nano webd      # добавляем закомментированные строки +nano webd      # добавляем закомментированные строки
- +
-server# ###tar -cvzf www.tgz -C /var/ www/+
  
-server# cat start.sh+# cat start.sh
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
Line 220: Line 219:
 </​code><​code>​ </​code><​code>​
 #FROM debian #FROM debian
-#FROM debian:​bullseye 
 FROM debian:​bookworm FROM debian:​bookworm
  
Line 258: Line 256:
 <​code>​ <​code>​
 :~/pywebd$ ## mkdir etc/; cp -rv /​etc/​pywebd/​ etc/ :~/pywebd$ ## mkdir etc/; cp -rv /​etc/​pywebd/​ etc/
-:~/pywebd$ ## echo '<​h1>​Default from pywebd</​h1>'​ > index.html+:​~/​pywebd$ ​## mkdir var/; cp -rv /var/www/ var/ 
 +:~/pywebd$ ### echo '<​h1>​Default from pywebd</​h1>'​ > index.html
  
 :~/pywebd$ dpkg -l | grep python ​ :~/pywebd$ dpkg -l | grep python ​
Line 284: Line 283:
  
 #COPY --chown=myuser:​myuser app.py . #COPY --chown=myuser:​myuser app.py .
-## COPY --chown=myuser:​myuser etc/pywebd/ /etc/pywebd+## COPY --chown=myuser:​myuser etc/ /etc/ 
-## COPY --chown=myuser:​myuser index.html /var/www/+## COPY --chown=myuser:​myuser var/ /var
 +### COPY --chown=myuser:​myuser index.html /var/www/
 ### ADD www.tgz /var/ ### ADD www.tgz /var/
  
 ### ENV PYWEBD_PORT=4080 ### ENV PYWEBD_PORT=4080
 +### ENV PYWEBD_DOC_ROOT=/​var/​www/​
  
 ### EXPOSE 4080 ### EXPOSE 4080
Line 501: Line 502:
  
  
 +==== Микросервисы ====
 ==== Использование готовых образов приложений ==== ==== Использование готовых образов приложений ====
  
Line 538: Line 540:
   * [[Инструмент GitLab#​Установка через docker-compose]] GitLab   * [[Инструмент GitLab#​Установка через docker-compose]] GitLab
   * Установка через [[Сервис Keycloak#​docker-compose]] Keycloak   * Установка через [[Сервис Keycloak#​docker-compose]] Keycloak
 +
 +  * [[https://​kompose.io/​|Go from Docker Compose to Kubernetes]]
  
 <​code>​ <​code>​
-# apt install docker-compose+# apt install docker-compose ​docker.io
  
 # cat docker-compose.yml # cat docker-compose.yml
 </​code><​code>​ </​code><​code>​
-version: "​3"​+#version: "​3"​
 services: services:
   webd:   webd:
Line 580: Line 584:
 </​code><​code>​ </​code><​code>​
 # ###​docker-compose build # ###​docker-compose build
 +
 +# docker-compose config
  
 # docker-compose up -d # docker-compose up -d
Line 624: Line 630:
 ===== Локальные репозитории ===== ===== Локальные репозитории =====
  
 +  * [[https://​www.suse.com/​c/​rancher_blog/​container-registries-you-might-have-missed/​|Container Registries You Might Have Missed]]
 ==== Копирование образов ==== ==== Копирование образов ====
 <​code>​ <​code>​
-server# docker save -o test-webd.tgz test/webd+lan# docker save -o test-webd.tgz test/webd
  
-lan# scp server:test-webd.tgz ​.+lan# scp test-webd.tgz ​somehost:
  
-lan# docker load -i test-webd.tgz+somehost# docker load -i test-webd.tgz
 </​code>​ </​code>​
 ==== Insecure Private Registry ==== ==== Insecure Private Registry ====
Line 711: Line 718:
  
   * [[https://​habr.com/​ru/​companies/​slurm/​articles/​436126/​|Kubernetes:​ сборка образов Docker в кластере,​ можно использовать kaniko]]   * [[https://​habr.com/​ru/​companies/​slurm/​articles/​436126/​|Kubernetes:​ сборка образов Docker в кластере,​ можно использовать kaniko]]
 +  * [[#​Приложение golang gowebd]]
  
 <​code>​ <​code>​
Line 716: Line 724:
   -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 769: Line 778:
   <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 825: Line 834:
 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 831: Line 840:
 ~/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.1760097512.txt.gz · Last modified: 2025/10/10 14:58 by val