Запустить скрипт Python без веб-сервера в Docker?

Ваш первый порт вызова должен быть документацией , который объясняет это разумно ясно:

Брошено, чтобы указать, что к массиву был обращен незаконный индекс. Индекс является либо отрицательным, либо большим или равным размеру массива.

Так, например:

int[] array = new int[5];
int boom = array[10]; // Throws the exception

Как избежать этого. ., не делайте этого. Будьте осторожны с вашими индексами массива.

Одной из проблем, с которыми иногда сталкиваются люди, является то, что массивы 1-индексируются, например

int[] array = new int[5];
// ... populate the array here ...
for (int index = 1; index <= array.length; index++)
{
    System.out.println(array[index]);
}

Это пропустит первый элемент (индекс 0 ) и выдают исключение, когда индекс равен 5. Действующие индексы здесь 0-4 включительно. Правильный, идиоматический оператор for здесь будет:

for (int index = 0; index < array.length; index++)

(Предполагается, что вы нуждаетесь в индексе, конечно. Если вы можете использовать расширенный для цикла, сделайте это.)

2
задан Maik 4 March 2019 в 12:45
поделиться

3 ответа

Вы можете легко запустить Python в интерактивном режиме, даже не создавая контейнер:

docker run -it python

Если вы хотите иметь доступ к некоторому коду, который вы написали внутри контейнера, просто измените его на:

docker run -it -v /path/to/code:/app: python

Создание Dockerfile не требуется для этого простого приложения.

0
ответ дан Stuart Buckingham 4 March 2019 в 12:45
поделиться

Просто удалите из Dockerfile все, что не имеет ничего общего с вашим сценарием, и начните с чего-то простого, например,

FROM python:3

ADD my_script.py /

CMD [ "python", "./my_script.py" ]

. Вам не нужно, чтобы Docker составлял для контейнерирования одного сценария Python.

Пример взят из этого простого учебника о контейнеризации приложений Python: https://runnable.com/docker/python/dockerize-your-python-application

Вы можете легко перезапишите команду, указанную в файле Docker (через CMD), при запуске контейнера из образа. Просто добавьте нужную команду к вашей docker run команде, например:

docker run IMAGE /path/to/script.py
0
ответ дан Thomas Kainrad 4 March 2019 в 12:45
поделиться

Большинство дистрибутивов Linux поставляются с предустановленным Python. Использование Docker здесь добавляет значительную сложность, и я бы настоятельно рекомендовал Docker не запускать простой скрипт. Вы можете использовать виртуальную среду , чтобы изолировать зависимости конкретного пакета Python от остальной системы.

(Существует довольно непротиворечивый поток вопросов SO о получении прав файловой системы и идентификаторов пользователей для сценариев, которые в основном хотят взаимодействовать с хост-системой. Также помните, что при выполнении docker все подразумевает права, эквивалентные корневым. вам не нужна файловая система Docker и изоляция пространства имен пользователя, IMHO, проще просто не использовать Docker там, где это не имеет смысла.)

0
ответ дан David Maze 4 March 2019 в 12:45
поделиться
Другие вопросы по тегам:

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