-
Notifications
You must be signed in to change notification settings - Fork 7
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
Use Corepack for selecting package manager #28
base: next
Are you sure you want to change the base?
Conversation
apk del build-dependencies | ||
|
||
ONBUILD COPY . ./ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possibly better to do the copy as late as possible so Docker can reuse the layer which installs build dependencies, corepack and node dependencies when only changing some production code (this has nothing to do with package managers).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then I think we need to copy any lock file here and all the other files later. I am not 100% sure about that but we definetly need package.json copied here before we run any of the commands. I would really love if we could make it so that we don't have to hard code each package managers lock files into this. Any suggestions on how to avoid hard coding such?
YARN_OPTS="" | ||
NPM_CMD="install" | ||
fi | ||
# Execute install with corepack, return true to ignore errors from non matching package managers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any way we could allow users to provide args/flags for these commands?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean to corepack or the package manager? Or both.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The package manager commands. My concern is if a user wants to pass some args to their package manager of choice, how do we enable that?
Not sure if Docker's ENV would work to pass args down, or if there's another way.
e.g. pseudocode
corepack yarn install $OPTS || true
corepack pnpm install $OPTS || true
corepack npm ci $OPTS || true
Please see RFC (internally announced) and comment on the RFC before applying any comments here. At the moment this PR is intended for PoC purposes only.