now*_*wox 2 docker github-actions
我想设置一个 GitHub Action 来构建我的项目并在本地运行测试。因为我用.devcontainer我有一个Dockerfile在.devcontainer/Dockerfile提供一切我需要建立我的项目。
现在我想写一个 GitHub Action 来在每次推送时构建项目。在本地我会这样做:
docker build -t local - < .devcontainer/Dockerfile
docker run -it -v $(pwd):/srv -w/srv local make test
Run Code Online (Sandbox Code Playgroud)
GitHub 操作看起来很麻烦,但我最终写了这个:
on: push
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- name: check out repository
uses: actions/checkout@v2
- name: build project
container:
image: ".devcontainer/Dockerfile"
volumes:
- .:/srv
run: make test
Run Code Online (Sandbox Code Playgroud)
不幸的是它不喜欢container关键字。
有什么线索吗?
容器密钥旨在运行公开可用的 dockerized 操作,并且在job.<job_id>密钥下可用,而不是在steps密钥下。您不需要它来完成您的任务。
GitHub 运行器已经安装了大量软件,包括 docker 和 docker compose。
您可以轻松地运行在 GitHub 工作流程中本地运行的相同命令。
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Build docker images
run: docker build -t local < .devcontainer/Dockerfile
- name: Run tests
run: docker run -it -v $PWD:/srv -w/srv local make test
Run Code Online (Sandbox Code Playgroud)
我正在像这样运行我的大部分工作流程,只使用 docker-compose,所以你最终会得到更清晰的工作流程:
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Build docker images
run: docker-compose build
- name: Setup database
run: docker-compose run setup
- name: Run tests
run: docker-compose run test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |