Github Actions Docker可以';找不到文件
我有一个非常简单的项目:。我想在docker容器中执行setup.cql(尽管为空)。这是我的yml文件:Github Actions Docker可以';找不到文件,docker,cassandra,github-actions,scylla,Docker,Cassandra,Github Actions,Scylla,我有一个非常简单的项目:。我想在docker容器中执行setup.cql(尽管为空)。这是我的yml文件: name: tests-cassandra on: push env: CARGO_TERM_COLOR: always jobs: test: runs-on: ubuntu-latest services: cassandra: image: cassandra ports: - 9042:9
name: tests-cassandra
on: push
env:
CARGO_TERM_COLOR: always
jobs:
test:
runs-on: ubuntu-latest
services:
cassandra:
image: cassandra
ports:
- 9042:9042
options: --health-cmd "cqlsh --debug" --health-interval 5s --health-retries 10
steps:
- uses: actions/checkout@v2
- run: |
ls
docker exec -i ${{ job.services.cassandra.id }} cqlsh -f setup.cql
Docker能够在运行Docker exec
命令之前查看setup.cql在当前目录中,因为ls返回setup.cql
:
如何在Github操作中的Docker中运行.cql脚本您的服务无法访问本地文件。确保创建一个卷,然后才能运行命令。下面的解决方案假定repo目录的根目录中存在文件setup.cql 回购结构假设
repo/
.github/workflows/your-worflow.yaml
setup.cql
... any other files/dirs
工作流更新
services:
cassandra:
image: cassandra
ports:
- 9042:9042
options: --health-cmd "cqlsh --debug" --health-interval 5s --health-retries 10
volumes:
- ${{ github.workspace }}:/workspace
steps:
- uses: actions/checkout@v2
- run: docker exec -i ${{ job.services.cassandra.id }} cqlsh -f /workspace/setup.cql
您的服务无权访问本地文件。确保创建一个卷,然后才能运行命令。下面的解决方案假定repo目录的根目录中存在文件setup.cql 回购结构假设
repo/
.github/workflows/your-worflow.yaml
setup.cql
... any other files/dirs
工作流更新
services:
cassandra:
image: cassandra
ports:
- 9042:9042
options: --health-cmd "cqlsh --debug" --health-interval 5s --health-retries 10
volumes:
- ${{ github.workspace }}:/workspace
steps:
- uses: actions/checkout@v2
- run: docker exec -i ${{ job.services.cassandra.id }} cqlsh -f /workspace/setup.cql
setup.cql
似乎在主机上(本例中是ubuntu的最新版本),但不在cassandra容器内docker exec-i${{job.services.cassandra.id}}ls
可能会在这里引起一些注意。setup.cql
似乎在主机上(本例中是ubuntu的最新版本),但不在cassandra容器内<代码>docker exec-i${{job.services.cassandra.id}}ls可以在这里说明一些问题。