Запуск пользовательского образа Python, который принимает входные данные (файлы) внутри конвейера gitLab ⇐ Python

Программы на Python
Anonymous
Запуск пользовательского образа Python, который принимает входные данные (файлы) внутри конвейера gitLab

Сообщение Anonymous »

project1: У меня есть очень простое приложение на Python, которое принимает ввод строки cmd и распечатывает его, и это все. Я создал образ этого приложения Python и отправил его в реестр контейнера gitlab для проекта2 следующим образом (работает так, как задумано):
app.py

Код: Выделить всё

import sys

#print(sys.argv)
print("Yes I am inside the program")

for file in sys.argv:
print(file)
Dockerfile:

Код: Выделить всё

FROM python:3.12.7-alpine

WORKDIR /app
COPY app.py .

ENTRYPOINT ["python","app.py"]
.gitlab-ci.yml (чтобы создать образ и отправить его в gitlab как собственный образ:
этапы:

Код: Выделить всё

build image:
stage: build
image: docker:stable
services:
- name: docker:dind
alias: thedockerhost
variables:
# Tell docker CLI how to talk to Docker daemon; see
# https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker-executor
DOCKER_HOST: tcp://thedockerhost:2375/
# Use the overlayfs driver for improved performance:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
script:
# Download bash:
- apk add --no-cache bash python3
- echo "$CI_REGISTRY_USER"
- echo "$CI_REGISTRY_PASSWORD"
- docker login -u  -p 
 gitlab.ilts.com:5050
- docker build -t gitlab.ilts.com:5050/group/project2/pythonapp .
- docker push gitlab.ilts.com:5050/group/project2/pythonapp
- docker logout
В project2, где у меня есть собственное изображение, доступное в реестре контейнеров GitLab, я пытаюсь использовать изображение и предоставить входные данные в виде имен файлов.
В project2, где у меня есть собственный образ, доступный в реестре контейнеров GitLab, я пытаюсь использовать его и предоставить входные данные в виде имен файлов.
p>
.gitlab-ci.yml проекта2.

Код: Выделить всё

build:
image: gitlab.ilts.com:5050/group/pythonapp:latest
before_script:
- echo "setting environment"
- apk update && apk add git
- git --version
script:
- echo "Creating Tag"
- git switch $CI_COMMIT_REF_NAME
- LAST_VER=$(git tag --list | sort -V | tail -n1)
- echo "$LAST_VER"
- FILES_CHANGED=$(git diff --name-only HEAD v1.0.0)
- echo "$FILES_CHANGED"
- python --version
- python app.py hi.sql yes.sql hello.sql
1) Когда я выполняю это действие, результат, который я получаю, не имеет для меня смысла. Можете ли вы помочь мне понять, почему это отображается таким образом и как это исправить?
ВЫВОД:

Код: Выделить всё

Yes I am inside the program
app.py
sh
-c
if [ -x /usr/local/bin/bash ]; then
exec /usr/local/bin/bash
elif [ -x /usr/bin/bash ]; then
exec /usr/bin/bash
elif [ -x /bin/bash ]; then
exec /bin/bash
elif [ -x /usr/local/bin/sh ]; then
exec /usr/local/bin/sh
elif [ -x /usr/bin/sh ]; then
exec /usr/bin/sh
elif [ -x /bin/sh ]; then
exec /bin/sh
elif [ -x /busybox/sh ]; then
exec /busybox/sh
else
echo shell not found
exit 1
fi
2: Можно ли получить доступ к файлам, которые находятся в репозитории project2, в этом пользовательском образе приложения Python для чтения и записи?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ab-pipelin

Вернуться в «Python»