GoogleContainerTools / GoogleContainerTools/skaffold

Cannot update mutliple containers created from single image

Open
#9,392 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
15.9k
Forks
1.7k
Avg merge
3d 9h
Merged PRs (30d)
10

Description

### Expected behavior

When I have two (multiple) containers from an image, I expect both containers to be updates on code change in development environment.

### Actual behavior

It updates one container and for the other one raises this error:

```
INFO[0406] files modified: [app/src/ControlApi/Handlers/MyHandler.php] subtask=-1 task=DevLoop
Syncing 1 files for 12345.dkr.ecr.eu-central-1.amazonaws.com/project-dev/backend:448f38d9c0ea842e2f95da8c5e18f37bafea9bca0759fface0520ff391d1990d
INFO[0406] Copying files:map[app/src/ControlApi/Handlers/MyHandler.php:[/var/www/app/src/ControlApi/Handlers/MyHandler.php]]to040672967332.dkr.ecr.eu-central-1.amazonaws.com/project-dev/backend:448f38d9c0ea842e2f95da8c5e18f37bafea9bca0759fface0520ff391d1990d subtask=-1 task=DevLoop
WARN[0407] Skipping deploy due to sync error:copying files: running [kubectl --context docker-desktop --namespace project exec project-sandbox-backend-69fbf9899c-6zhjb --namespace project -c backend -i -- tar xmf - -C / --no-same-owner]
- stdout: ""
- stderr: "tar: Removing leading `/' from member names\ntar: var/www/app/src/ControlApi/Handlers/MyHandler.php: Cannot open: File exists\ntar: Exiting with failure status due to previous errors\ncommand terminated with exit code 2\n"
- cause: exit status 2: sync failed for artifact "12345.dkr.ecr.eu-central-1.amazonaws.com/project-dev/backend:448f38d9c0ea842e2f95da8c5e18f37bafea9bca0759fface0520ff391d1990d" subtask=-1 task=DevLoop
Watching for changes...
```

### Information

- Skaffold version: v2.11.0
- Operating system: MacOS 13.6.6 (22G630)
- Installed via: skaffold.dev
- Contents of skaffold.yaml:

```yaml
apiVersion: skaffold/v2beta9
kind: Config
metadata:
name: project
build:
artifacts:
- image: 12345.dkr.ecr.eu-central-1.amazonaws.com/project-dev/backend
context: app
docker:
buildArgs:
TARGET: "DEV"
WITH_XDEBUG: '{{.WITH_XDEBUG}}'
sync:
manual:
- src: src/**/*
dest: src/
strip: src/
- src: tests/**/*
dest: tests/
strip: tests/
- src: templates/**/*.twig
dest: templates/
strip: templates/
- src: config/**/*.yaml
dest: config/
strip: config/
- src: public/**/*
dest: public/
strip: public/
- image: 12345.dkr.ecr.eu-central-1.amazonaws.com/project-dev/frontend
context: frontend
docker:
dockerfile: Dockerfile
sync:
manual:
- src: pages/**/*
dest: pages/
strip: pages/
- src: components/**/*
dest: components/
strip: components/
- src: styles/**/*
dest: styles/
strip: styles/
- src: public/**/*
dest: public/
strip: public/
- src: src/**/*
dest: src/
strip: src/
tagPolicy:
sha256: {}

local:
concurrency: 4
useBuildkit: true
push: false

deploy:
helm:
releases:
- name: "project"
chartPath: "helm-charts/project"
skipBuildDependencies: true
artifactOverrides:
backend.image: 12345.dkr.ecr.eu-central-1.amazonaws.com/project-dev/backend
frontend.image: 12345.dkr.ecr.eu-central-1.amazonaws.com/project-dev/frontend
valuesFiles:
- helm-charts/project/values.yaml
- helm-charts/project/values-dev.yaml
- helm-charts/project/values-local.yaml
```

### Steps to reproduce the behavior

1. a clonable repository with the sample skaffold project
2. `skaffold dev -n project -v INFO --port-forward --kube-context=docker-desktop`
3. change a file to update two or more containers which built on a image created by Skaffold

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.