Как лучше построить и опубликовать библиотеку Python из контейнера Docker? - PullRequest
0 голосов
/ 12 июня 2019

Я работаю над созданием и публикацией библиотеки python с использованием библиотеки hatch для нашего локального pypiserver.Я хотел бы собрать и опубликовать его из контейнера Docker.

Как правильно это сделать?Нужно ли запускать контейнер, а затем подключаться к нему, извлекать исходный код, собирать, тестировать и публиковать?Другие подходы?

Моя текущая реализация - это сборка и публикация библиотеки, когда докер создает новый образ:

FROM python:3.6.8-stretch

ARG PYPI_USERNAME
ARG PYPI_PASSWORD

RUN mkdir /code

WORKDIR /code

RUN echo "machine pypi.myserver.com\n\tlogin $PYPI_USERNAME\n\tpassword $PYPI_PASSWORD" >> ~/.netrc && \
    mkdir ~/.pip && \
    echo "[global]\nextra-index-url = https://pypi.myserver.com\ntrusted-host = pypi.myserver.com" >> ~/.pip/pip.conf

RUN echo "\n[distutils]\nindex-servers=\n    myserver\n\n[myserver]\nrepository: https://pypi.myserver.com/\nusername: $PYPI_USERNAME\npassword: $PYPI_PASSWORD\n" > ~/.pypirc

COPY . .

RUN pip install . && rm -r ~/.pip && rm ~/.netrc

RUN py.test

RUN hatch build && hatch release -r myserver -u admin
RUN rm ~/.pypirc

CMD [ "echo", "OK" ]

Затем я проверяю код состояния выхода ($?) и создаювывод, был ли он успешным или нет.

В конце я удаляю все изображения из Docker.

Спасибо.

...