Github Actions Docker可以';找不到文件

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

我有一个非常简单的项目:。我想在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: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可以在这里说明一些问题。