Стартовая страница › Форумы › Rapid SCADA на Linux-контроллерах и Raspberry Pi › Создание Docker образа
Помечено: rapid scada server docker
- В этой теме 11 ответов, 4 участника, последнее обновление 6 месяцев, 3 недели назад сделано
Mikhail.
-
АвторСообщения
-
27.08.2021 в 14:40 #20632
vladimirx
УчастникУ меня возник вопрос как собрать docker образ из rapid scada (серверная часть)?
При сборке возникает ошибка при выполнении команды «sudo apt install apt-transport-https dirmngr gnupg ca-certificates» :docker build . -t vladimirx/web_flutter_bin:scada
[+] Building 3.0s (21/25)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 2.10kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/debian:latest 1.8s
=> [auth] library/debian:pull token for registry-1.docker.io 0.0s
=> [ 1/20] FROM docker.io/library/debian:latest@sha256:38988bd08d1a5534ae90bea146e199e2b7a8fca334e9a7afe5297a7c919e96ea 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 110.88kB 0.1s
=> CACHED [ 2/20] RUN apt-get update 0.0s
=> CACHED [ 3/20] RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3 0.0s
=> CACHED [ 4/20] RUN apt-get clean 0.0s
=> CACHED [ 5/20] COPY build/ /usr/local/bin/app/build 0.0s
=> CACHED [ 6/20] COPY server/ /usr/local/bin/app/server 0.0s
=> CACHED [ 7/20] COPY rapid_scada/scada/ /opt/scada 0.0s
=> CACHED [ 8/20] COPY rapid_scada/daemons/ etc/init.d/ 0.0s
=> CACHED [ 9/20] COPY rapid_scada/apache/ /usr/local/bin/app/rapid_scada/apache 0.0s
=> CACHED [10/20] WORKDIR /usr/local/bin/app 0.0s
=> CACHED [11/20] RUN [«chmod», «ugo+rwx», «/opt/scada/ScadaWeb/config»] 0.0s
=> CACHED [12/20] RUN [«chmod», «ugo+rwx», «/opt/scada/ScadaWeb/log»] 0.0s
=> CACHED [13/20] RUN [«chmod», «ugo+rwx», «/opt/scada/ScadaWeb/storage»] 0.0s
=> CACHED [14/20] RUN [«chmod», «+x», «/opt/scada/make_executable.sh»] 0.0s
=> CACHED [15/20] RUN [«/opt/scada/make_executable.sh»] 0.0s
=> ERROR [16/20] RUN [«apt», «install», «apt-transport-https», «dirmngr», «gnupg», «ca-certificates»] 1.0s
——
> [16/20] RUN [«apt», «install», «apt-transport-https», «dirmngr», «gnupg», «ca-certificates»]:
#21 0.252
#21 0.252 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#21 0.252
#21 0.275 Reading package lists…
#21 0.719 Building dependency tree…
#21 0.813 Reading state information…
#21 0.920 ca-certificates is already the newest version (20210119).
#21 0.920 ca-certificates set to manually installed.
#21 0.920 The following additional packages will be installed:
#21 0.920 gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf
#21 0.921 gpgsm libassuan0 libksba8 libnpth0 pinentry-curses
#21 0.922 Suggested packages:
#21 0.922 dbus-user-session libpam-systemd pinentry-gnome3 tor parcimonie xloadimage
#21 0.922 scdaemon pinentry-doc
#21 1.000 The following NEW packages will be installed:
#21 1.000 apt-transport-https dirmngr gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#21 1.000 gpg-wks-client gpg-wks-server gpgconf gpgsm libassuan0 libksba8 libnpth0
#21 1.001 pinentry-curses
#21 1.006 0 upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
#21 1.006 Need to get 7821 kB of archives.
#21 1.006 After this operation, 15.8 MB of additional disk space will be used.
#21 1.006 Do you want to continue? [Y/n] Abort.
——
executor failed running [apt install apt-transport-https dirmngr gnupg ca-certificates]: exit code: 1Как сделать, чтобы команда не задавала вопросы (автоматически отвечала Y)?
Исходный код файла Dockerfile:
# Install dependencies
FROM debian:latest AS build-env
RUN apt-get update
RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3 psmisc
RUN apt-get clean# Copy the app files
COPY build/ /usr/local/bin/app/build
COPY server/ /usr/local/bin/app/serverCOPY rapid_scada/scada/ /opt/scada
COPY rapid_scada/daemons/ etc/init.d/
COPY rapid_scada/apache/ /usr/local/bin/app/rapid_scada/apacheWORKDIR /usr/local/bin/app
# Scada
RUN [«chmod», «ugo+rwx», «/opt/scada/ScadaWeb/config»]
RUN [«chmod», «ugo+rwx», «/opt/scada/ScadaWeb/log»]
RUN [«chmod», «ugo+rwx», «/opt/scada/ScadaWeb/storage»]RUN [«chmod», «+x», «/opt/scada/make_executable.sh»]
RUN [«/opt/scada/make_executable.sh»]RUN [«apt», «install», «apt-transport-https», «dirmngr», «gnupg», «ca-certificates»]
RUN [«apt-key», «adv», «—keyserver», «hkp://keyserver.ubuntu.com:80», «—recv-keys», «3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF»]RUN [«apt-key», «adv», «—keyserver», «hkp://keyserver.ubuntu.com:80», «—recv-keys», «3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF»]
RUN [«echo», «\»deb https://download.mono-project.com/repo/debian stable-buster main\» | tee /etc/apt/sources.list.d/mono-official-stable.list»]RUN [«apt», «update»]
RUN apt-get install mono-complete
RUN service apache2 status
RUN apt-get install apache2RUN apt-get install libapache2-mod-mono mono-apache-server4
RUN ln -s /opt/scada/ScadaWeb /var/www/html/scada
COPY rapid_scada/apache/ /etc/apache2/sites-available
RUN a2ensite scada.confRUN /opt/scada/svc_install.sh
27.08.2021 в 15:29 #20633Mikhail
МодераторТема про образ. Может быть автор темы @manjey73 сможет что-то посоветовать.
-
Этот ответ был изменен 2 года назад от
Mikhail.
27.08.2021 в 15:31 #20634Mikhail
МодераторХотя указанная выше тема не касается docker, в ней речь идёт об образе диска.
В общем, кто делал что-то подобное, напишите.27.08.2021 в 15:34 #20636Mikhail
МодераторКак сделать, чтобы команда не задавала вопросы (автоматически отвечала Y)?
sudo apt-get install -y package-name
-
Этот ответ был изменен 2 года назад от
Mikhail.
27.08.2021 в 15:46 #20638manjey73
Участник@vladimirx Если честно, я слабо представляю, что такое docker 🙂
Я так понимаю, это образ Linux, который можно запустить под Windows в режиме виртуализации?
sudo apt install apt-transport-https dirmngr gnupg ca-certificates — это команда получения сертификата для установки MONO
Вы используете конкретную версию ядра в docker?
Есть еще момент, MONO при установке с сайта СОБИРАЕТ часть файлов, то есть оно там не просто копируется…. Может стоит создать Docker, а потом загрузиться в него и выполнить всю процедуру сборки и установки Mono и потом уже Scada ?
-
Этот ответ был изменен 2 года назад от
manjey73.
02.02.2023 в 17:12 #27274artyras
УчастникЗдравствуйте! Я создал образ для Rapidscada_6 https://hub.docker.com/repository/docker/artyras/rapid_scada_6/general
Так как Рапидскада использует systemd, а Докер с ним не дружит, нужно использовать Podman (https://podman.io/) вместо Докера02.02.2023 в 17:39 #27275artyras
УчастникЗдравствуйте! Я создал образ для Rapidscada_6 https://hub.docker.com/repository/docker/artyras/rapidscada_6/general
Так как Рапидскада использует systemd, а Докер с ним не дружит, нужно использовать Podman (https://podman.io/) вместо ДокераPS пришлось удалить предыдущий репозиторий что бы поисковик докера видел запрос rapidscada
03.02.2023 в 15:21 #27278Mikhail
МодераторДобрый день!
Спасибо, полезно.
Есть ли какие-то особенности настройки, связанные с доступом Коммуникатора из контейнера к контроллерам по TCP в режиме клиента и сервера?
Есть ли инструкция по установке и работе?22.02.2023 в 08:41 #27495artyras
УчастникОбновил инструкцию на hub.docker.com
Но на всякий случай продублирую сюдаТак как Рапидскада использует «systemd» для запуска контейнера нужно использовать Podman (https://podman.io/) вместо Docker. Синтаксис Podman такой же как и Docker, так что ни каких сложностей быть не должно. Но это не точно) Что бы запустить контейнер вводим команду:
podman run —name rapidscada -p 8082:80 -p 10000:10000 -p 10002:10002 -p 10008:10008 docker.io/library/artyras/rapidscada_6
podman exec -it rapidscada bash
где: run — скачать и запустить
—name задать свое имя для контейнера (по умолчанию будет абракадабра и тогда придется ее вводить для манипуляций контейнером)
-p пробросить порт «хост:контейнер»
exec выполнить команду в запущенном контейнере
-it откроет доступ к tty
bash запустит терминалДанные рекомендации по желанию: По умолчанию Podman нужно вводить полный адрес контейнера который необходимо скачать, пример: podman run quay.io/aminvakil/ubuntu22.04-systemd или в нашем случаи podman run docker.io/library/artyras/rapidscada_6. Чтобы для докера не вводить его полный адрес и была возможность совершить команду: podman login, нужно внести изменения в файл создав его: $HOME/.config/containers/registries.conf с содержанием: unqualified-search-registries = [«docker.io»] . Так же после таких манипуляций команду можно будет вводить так: podman run artyras/rapidscada_6
22.02.2023 в 14:27 #27509Mikhail
МодераторСервер, Коммуникатор и Агент можно собрать как обычные консольные приложения, не использующие systemd. Это упростит создание создание и работу с контейнерами?
27.02.2023 в 16:59 #27537artyras
УчастникДумаю что да, и скорее все после того как я окончательно разберусь с архитектурой Rapidscada, так оно и будет. Плюс ко всему думаю что в работающей диспетчеризации будет необходимость вынести журналирование и хранение данных в отдельный контейнер.
К своему стыду хочу признаться, что еще даже из исходников не собирал проект, что уж тут говорить о понимании взаимодействий приложений между собой 🙂
А сейчас столкнулся с тем, что не могу в новой версии рапидскада запустить Администратор через Wine. В итоговых влажных фантазия должно быть два контейнера с серверной частью и администратором 🙂28.02.2023 в 13:54 #27546Mikhail
МодераторПри сборке из исходников в том числе будут собраны Сервер и Коммуникатор в виде консольных приложений. Сборка простая, инструкция в репозитории.
По запуску через Wine заведите отдельную тему, там есть особенности.
-
Этот ответ был изменен 2 года назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.