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

Use Corepack for selecting package manager #28

Open
wants to merge 1 commit into
base: next
Choose a base branch
from

Conversation

trygve-lie
Copy link
Contributor

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.

Dockerfile.base Show resolved Hide resolved
apk del build-dependencies

ONBUILD COPY . ./
Copy link
Member

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).

Copy link
Contributor Author

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
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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

@trygve-lie trygve-lie changed the base branch from master to next March 7, 2022 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants