如何在 github-action 中缓存 docker-compose build
How to cache docker-compose build inside github-action
有什么方法可以缓存 docker-compose 以便它不会一次又一次地构建?
这是我的操作工作流程文件:
name: Github Action
on:
push:
branches:
- staging
jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Bootstrap app on Ubuntu
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Install global packages
run: npm install -g yarn prisma
- name: Install project deps
if: steps.cache-yarn.outputs.cache-hit != 'true'
run: yarn
- name: Build docker-compose
run: docker-compose -f docker-compose.test.prisma.yml up --build -d
我想缓存 docker 构建步骤。我试过使用 if: steps.cache-docker.outputs.cache-hit != 'true' then only build
但没有用。
您指的是“docker 层缓存”,GitHub Actions 尚不支持它。
这在几个地方进行了广泛讨论,例如:
- Cache docker image forum thread
- Cache a Docker image built in workflow forum thread
- Docker caching issue in actions/cache repository
如评论中所述,有一些第 3 方操作提供此功能(如 this one),但对于此类核心和基本功能,我会谨慎对待任何不受官方支持的内容由 GitHub 本身。
对于那些通过Google到达这里的人,现在“支持”了。或者至少它在工作:https://github.community/t/use-docker-layer-caching-with-docker-compose-build-not-just-docker/156049。
这个想法是使用 docker(及其缓存)构建图像,然后使用 docker 组合成 运行(向上)它们。
有什么方法可以缓存 docker-compose 以便它不会一次又一次地构建? 这是我的操作工作流程文件:
name: Github Action
on:
push:
branches:
- staging
jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Bootstrap app on Ubuntu
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Install global packages
run: npm install -g yarn prisma
- name: Install project deps
if: steps.cache-yarn.outputs.cache-hit != 'true'
run: yarn
- name: Build docker-compose
run: docker-compose -f docker-compose.test.prisma.yml up --build -d
我想缓存 docker 构建步骤。我试过使用 if: steps.cache-docker.outputs.cache-hit != 'true' then only build
但没有用。
您指的是“docker 层缓存”,GitHub Actions 尚不支持它。
这在几个地方进行了广泛讨论,例如:
- Cache docker image forum thread
- Cache a Docker image built in workflow forum thread
- Docker caching issue in actions/cache repository
如评论中所述,有一些第 3 方操作提供此功能(如 this one),但对于此类核心和基本功能,我会谨慎对待任何不受官方支持的内容由 GitHub 本身。
对于那些通过Google到达这里的人,现在“支持”了。或者至少它在工作:https://github.community/t/use-docker-layer-caching-with-docker-compose-build-not-just-docker/156049。 这个想法是使用 docker(及其缓存)构建图像,然后使用 docker 组合成 运行(向上)它们。