Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

cache miss

Aberta
#200 8 comentários 3 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
docker, github-actions
Domínio
ci-cd, devops

Direção de pesquisa

Comece pela etapa docker/build-push-action do pre-build job e compare suas configurações de cache-from/cache-to com o valor cacheFrom passado para devcontainers/[email protected]. Inspecione os logs de ambas as chamadas do devcontainer e verifique se a primeira chamada reutiliza a imagem publicada ou o cache em vez de reconstruí-la; considera-se concluído quando o cache configurado é usado de forma consistente.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hoping to get some guidance 🙏
In my workflow I have a separate job that builds a test image in CI off of a base production image using docker's build-push action. That image then gets pushed to GCR and subsequent steps pull to run tests. I'm noticing that for the first devcontainer action it'll rebuild the container from scratch everytime, even though the cache is being stored in line. looking at the docker build command shows
Screenshot 2023-02-02 at 4 35 33 PM

Could someone point out where my configuration may be incorrect?

Here is my workflow, (i've omitted some steps that I don't believe to be related to the issue):

jobs:
  pre-build:
    runs-on: ubuntu-latest

    outputs:
      run_attempt: ${{ github.run_attempt }}
      
    env:
      SHA: ${{ github.event.pull_request.head.sha }}

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Get Short GitHub SHA
        run: echo "SHA7=${SHA::7}" >> $GITHUB_ENV

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      
      - name: Log in to GCR
        uses: docker/login-action@v2
        with: 
          registry: gcr.io
          username: _json_key
          password: ${{ env.SERVICE_KEY_FILE }}

      - name: Build and Push Docker Image
        uses: docker/build-push-action@v3
        with:
          context: "{{defaultContext}}:dbt"
          pull: true
          push: true
          tags: |
            ${{ env.IMAGE_NAME }}:${{ env.DATASET }}.gh-${{ github.run_id }}.${{ github.run_attempt }}
            ${{ env.IMAGE_NAME }}:${{ env.SHA7 }}
          cache-from: type=gha
          cache-to: type=gha,mode=max,type=inline
          provenance: false
          secrets: |
            GIT_AUTH_TOKEN=${{ secrets.GITHUB_TOKEN }}
  test:
    runs-on: ubuntu-latest
    needs: [ pre-build ]

    env:
      GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID_TEST }}
      TARGET: test
      
    steps:
      - name: Checkout
        uses: actions/checkout@v3     

      - name: Run git hooks
        uses: devcontainers/[email protected]
        env: 
          GOOGLE_APPLICATION_CREDENTIALS: /var/secrets/google/client_secrets.json
        with:
          cacheFrom: ${{ env.IMAGE_NAME }}:${{ env.DATASET }}.gh-${{ github.run_id }}.${{ github.run_attempt }}
          runCmd: |
              pre-commit run 

      - name: Run test
        uses: devcontainers/[email protected]
        env: 
          GOOGLE_APPLICATION_CREDENTIALS: /var/secrets/google/client_secrets.json
        with:
          cacheFrom: ${{ env.IMAGE_NAME }}:${{ env.DATASET }}.gh-${{ github.run_id }}.${{ github.run_attempt }}
          runCmd: |
              dbt test -m state:modified+ --defer --state .

The first devcontainer call:
Screenshot 2023-02-02 at 4 51 36 PM

The second devcontainer call:
Screenshot 2023-02-02 at 4 51 55 PM
it doesn't look like in the first instance of devcontainer the cache is being used?

The build and push step is successful:
Screenshot 2023-02-02 at 4 57 19 PM

Linguagem predominante
TypeScript
Estrelas
505
Forks
102
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de devcontainers/ci

Todas as issues de devcontainers/ci

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.