pipenv+docker+github actions에서python 개발 환경 만들기
버젼을 관리할 필요가 없기 때문이다.
이루어지다
1. docker로python 시작
1.1 Docker file 및 docke-compose.yml을 만든 후 다음과 같이 편집합니다.
Dockerfile
FROM python:3.9![](https://storage.googleapis.com/zenn-user-upload/795c1285e735a0ef5688bd5d.png)
WORKDIR /app
SHELL ["/bin/bash", "-c"]
RUN apt-get update &
RUN pip install --upgrade pip && \
pip install pipenv
docker-compose.ymlversion: '3'
services:
app:
build: .
volumes:
- ./:/app
tty: true
1.2 시동 컨테이너터미널에서 다음 명령을 실행합니다.
$ docker-compose build
$ docker-compose up -d
$docker-compose ps
다음과 같이 State가 "Up"입니다.$docker-compose ps
Name Command State Ports
--------------------------------------------
trial-pipenv_app_1 python3 Up
1.3 컨테이너에 들어간다.아래 내용을 실행하면 들어갈 수 있습니다.
docker-compose exec app bash
이런 느낌으로 위치를 입력하면 왼쪽이 "app#"이면 OK!root@d1eb115d66b4:/app#
2. pipenv install 방법
Docker file에서pythn3.8의 그림을 사용했기 때문에 용기를 시작하면 pip를 사용할 수 있습니다.
또한 피프브를 Docker file로 설치하기 때문에 컨테이너를 시작하면 피프브도 사용할 수 있다.
# pipenvをインストールする箇所
RUN pip install --upgrade pip && \
pip install pipenv
3. pytest install
다음 동작을 실행하면pipenv 환경에서pytest,pipfile,pipfile를 설치합니다.lock을 업데이트합니다.
root@d1eb115d66b4:/app# pipenv install pytest
4.ptest 실행
test/test_pytest.py를 만들고 다음 코드를 추가합니다.
pytest가 실행될 수 있다면 무엇이든지 좋습니다. 이번에는pytest의version을 검사하는 테스트입니다.6.2.5'는 설치된pytest의 version입니다.
import pytest
def test_version():
assert pytest.__version__ == '6.2.5'
root@d1eb115d66b4:/app# pipenv run pytest
의 결과는 이렇습니다.passed가 나타나면 성공합니다.(런타임 환경에서는 표시 내용이 변경될 수 있습니다.)$ pipenv run pytest
===================================================== test session starts ======================================================
platform linux -- Python 3.9.2, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: /app
collected 1 item
tests/test_pytest.py . [100%]
====================================================== 1 passed in 0.01s =======================================================
5.github actions에서 ptest 실행
.github/workflow/pytest.yml 제작 후 아래 내용을 기입하세요.
name: PyTest
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
pytest:
name: Run tests with pytest
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: docker Build
run: docker-compose build
- name: Docker Compose Up
run: docker-compose up -d
- name: Pipenv Install
run: docker-compose exec -T app pipenv install
- name: Pipenv Run Pytest
run: docker-compose exec -T app pipenv run pytest
git commiit를 실행하고github에서push를 실행하면 테스트가 시작됩니다.운행 중 노란색 표시입니다.
성공하면 녹색 검사가 있을 거예요.
docker-compose의 T 옵션은 컨테이너 대신 결과의 출력 목적지를 호스트에 추가해야 합니다.(그렇지 않으면 테스트 결과가 성공했는지 판정할 수 없습니다.)
(참조)
끝맺다
이렇게 환경 구축이 끝난다.
그리고 pipenv install에서 사용하고 싶은 프로그램 라이브러리를 설치하면 OK.
Reference
이 문제에 관하여(pipenv+docker+github actions에서python 개발 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ushknn/articles/1aa069cf03e06e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)