Не удается получить доступ к странице Tomcat по умолчанию в localhost:8080 для контейнера Docker Ubuntu 16.04

Вот вам пара утилит. Первый вычисляет среднее значение переданных ему чисел (по одному числу в строке ). Второй использует первый для вычисления стандартного отклонения от чисел в файле.


Исполняемый файлaverage:

#!/usr/bin/awk -f

/^[0-9.+-]/     { sum += $0; ++n }

END             { print sum / n }

Этот awkскрипт будет считывать ввод из файла или из стандартного ввода и вычислять среднее число в нем. Он ожидает одно число в строке.


Исполняемый файлstdev:

#!/bin/sh

awk -v avg="$(./average "$1" )" \
    '/^[0-9.+-]/ { sum += ($0 - avg)^2; ++n }
     END         { print sqrt(sum / (n - 1)) }' "$1"

Этот сценарий оболочки сначала использует приведенный выше сценарий averageдля вычисления среднего значения данных в файле, указанном в командной строке. Этот номер присваивается переменной awkavg. Затем он использует тот же тип обнаружения чисел, что и скрипт average, для вычисления стандартного отклонения.

Поскольку этот скрипт написан прямо сейчас, он требует данные из файла, а не со стандартного ввода.


Один из способов использования этого для ваших данных:

sed -n '/^<Score>/s///p' input.dat >output.dat

С заданными данными будет создан файл с именем output.dat, содержащий следующее:

4
2
3

Использование скрипта stdevвыше для этого файла:

$./stdev output.dat
1

Насколько я понимаю, это правильно.


Конечно,вы также можете сделать это напрямую в одном awkвызове, без создания каких-либо повторно используемых инструментов:

awk -F '>' '/^<Score>/ { v[++n] = $2; s += $2 }
            END { avg = s/n;
                  for (i=1; i<=n; ++i) {
                      std += (v[i] - avg)^2;
                  }
                  print sqrt(std / (n - 1));
                 }' input.dat
-1
26.01.2020, 17:11
1 ответ

Отредактировано Внимательно изучив файл dockerfile, вы не устанавливаете tomcat, перейдите по этой ссылке, чтобы начать :https://gist.github.com/lobster1234/af2dc4eef3ee75117043d950c2c1ec2b

Вам нужно немного отладить его... Сначала нужно запустить контейнер и сопоставить порты :docker run -it -p 8080:8080 $container_name

, затем убедитесь, что брандмауэр отключен в контейнере, вы можете перейти в контейнер с помощью docker exec -it $container_name bashи запустить ufw disableеще одна вещь, которую нужно сделать, пока вы находитесь внутри контейнера, это проверить, что сервер tomacat действительно работает...

сказав, что^ ваш файл докера не показывает, что вы разрешаете запуск tomcat как службы по умолчанию или вызываете скрипт, который будет запускать его (я почти уверен, что это выпуск)

Если сервер tomcat запущен, вы должны посмотреть, нет ли ошибок в журналах tomcat, которые могут указывать на проблему

удачи

0
28.01.2020, 05:11

Теги

Похожие вопросы