首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Testdriven.io:使用FastAPI和Docker错误进行测试驱动的开发运行Github操作测试码头映像

Testdriven.io:使用FastAPI和Docker错误进行测试驱动的开发运行Github操作测试码头映像
EN

Stack Overflow用户
提问于 2021-10-24 04:03:18
回答 1查看 900关注 0票数 4

我正在学习Testdriven.io: FastAPI和Docker课程的测试驱动开发,目前正在连续集成部分。在本节中,您将使用github操作来构建您的对接者映像,并运行测试和linting等等。

在流程的Test映像步骤中,当尝试pytest时,我收到以下错误: Error:用退出代码137完成的过程

工作流main.yml:

代码语言:javascript
复制
name: Continuous Integration and Delivery

on: [ push ]

env:
  IMAGE: docker.pkg.github.com/$(echo $GITHUB_REPOSITORY | tr '[A-Z]' '[a-z]')/summarizer

jobs:

  build:
    name: Build Docker Image
    runs-on: ubuntu-latest
    steps:
      - name: Checkout master
        uses: actions/checkout@v2.3.4
      - name: Log in to GitHub Packages
        run: echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Pull image
        run: |
          docker pull ${{ env.IMAGE }}:latest || true
      - name: Build image
        run: |
          docker build \
            --cache-from ${{ env.IMAGE }}:latest \
            --tag ${{ env.IMAGE }}:latest \
            --file ./project/Dockerfile.prod \
            "./project"
      - name: Push image
        run: |
          docker push ${{ env.IMAGE }}:latest

  test:
    name: Test Docker Image
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Checkout master
        uses: actions/checkout@v2.3.4
      - name: Log in to GitHub Packages
        run: echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Pull image
        run: |
          docker pull ${{ env.IMAGE }}:latest || true
      - name: Build image
        run: |
          docker build \
            --cache-from ${{ env.IMAGE }}:latest \
            --tag ${{ env.IMAGE }}:latest \
            --file ./project/Dockerfile.prod \
            "./project"
      - name: Run container
        run: |
          docker run \
            -d \
            --name fastapi-tdd \
            -e PORT=8765 \
            -e ENVIRONMENT=dev \
            -e DATABASE_TEST_URL=sqlite://sqlite.db \
            -p 5003:8765 \
            ${{ env.IMAGE }}:latest
      - name: Pytest
        run: docker exec fastapi-tdd python -m pytest tests
      - name: Flake8
        run: docker exec fastapi-tdd python -m flake8 .
      - name: Black
        run: docker exec fastapi-tdd python -m black . --check
      - name: isort
        run: docker exec fastapi-tdd python -m isort . --check-only

对码头容器运行pytest在本地工作。似乎没有任何其他的日志,我可以访问,将提供更多的解释为什么会发生这种情况。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-12-18 21:24:23

在docker命令中添加DATABASE_URL环境变量。

请参阅此问题:https://github.com/testdrivenio/fastapi-tdd-docker/issues/1

以下是我为自己修复的方法:

代码语言:javascript
复制
- name: Run container
    run: |
      docker run \
        -d \
        --name fastapi-tdd \
        -e PORT=8765 \
        -e ENVIRONMENT=dev \
        -e DATABASE_URL=sqlite://sqlite.db \
        -e DATABASE_TEST_URL=sqlite://sqlite.db \
        -p 5003:8765 \
        ${{ env.IMAGE }}:latest
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69693796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档