Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

design proposal 01: filesystem resolution #1048

Conversation

cvgw
Copy link
Contributor

@cvgw cvgw commented Feb 13, 2020

Fixes #1047

Description

Design proposal for how to handle resolving the filesystem

Submitter Checklist

Reviewer Notes

Release Notes

@googlebot googlebot added the cla: yes CLA signed by all commit authors label Feb 13, 2020
Copy link
Member

@tejal29 tejal29 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

first pass review.

=> ERROR
```

Given some path `/usr/foo/bar` which is a link to `/dev/null`, and `/dev` is
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens when a docker files has a command
Copy some_bin /var/run/some_bin

/var/run is whitelisted.
In this scenario, Docker would create /var/run/some_bin in the layer.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure, what do we currently do when the destination of a copy command is a whitelisted path?

Copy link
Member

@tejal29 tejal29 Feb 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right now, for Copy and ADD command we do the following

  • Resolve source and dest by substituting any env varaibles
  • Resolve any wild cards in sources
  • Get Relative source file path respect to root path. In this step,

For copying symlink dir targeted to a whitelisted path, there is another flow.
We should simplify this but probably not in scope for this proposal

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So what is the end result? Do we copy the file to the whitelist destination?

Copy link
Contributor Author

@cvgw cvgw Feb 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a quick test

FROM ubuntu:16.04
COPY meow.txt /var/run

docker

ls /var/run
=> initctl  lock  log  meow.txt  mount  sendsigs.omit.d  shm  systemd  user  utmp

kaniko

ls /var/run
=> /var/run

Copy link
Contributor Author

@cvgw cvgw Feb 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interestingly

FROM ubuntu:16.04
COPY meow.txt /var/run/meow.txt

docker

ls /var/run
=> initctl  lock  log  meow.txt  mount  sendsigs.omit.d  shm  systemd  user  utmp

kaniko

ls /var/run
=> /var/run/meow.txt

tejal29
tejal29 previously approved these changes Feb 13, 2020
docs/design_proposals/filesystem-resolution-proposal-01.md Outdated Show resolved Hide resolved
@tejal29 tejal29 dismissed their stale review February 13, 2020 23:52

hit approve by mistake.

@cvgw cvgw force-pushed the u/cgwippern/design-proposal-01-filesystem-resolution branch from 3b81ef9 to 002642e Compare February 14, 2020 01:58
@tejal29 tejal29 merged commit 3350281 into GoogleContainerTools:master Feb 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes CLA signed by all commit authors
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Design Proposal 01: Filesystem Resolution
3 participants