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

Add mysqlctl docker image #7557

Merged
merged 2 commits into from
Mar 2, 2021

Conversation

keweishang
Copy link
Contributor

@keweishang keweishang commented Feb 26, 2021

Description

The Vitess Connector is using the vitess/base docker image as the base image to copy useful binaries, such as mysqlctl, vtctl, etc. The vitess/base docker image is huge (6.56GB). In order to avoid downloading this huge image, this PR creates the mysqlctl docker image, so that users can copy mysqlctl from this much smaller docker image.

The new docker image vitess/mysqlctl should be pushed to DockerHub.

Related Slack discussion: https://vitess.slack.com/archives/C0PQY0PTK/p1612339740175400

Impacted Areas in Vitess

Components that this PR will affect:

  • Query Serving
  • VReplication
  • Cluster Management
  • Build/CI
  • VTAdmin

@keweishang
Copy link
Contributor Author

@deepthi Could you have a look at this PR? Thanks

Signed-off-by: Kewei Shang <kewei.shang@bolt.eu>
Signed-off-by: Kewei Shang <kewei.shang@bolt.eu>
COPY --from=k8s /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

# copy vitess config
COPY --from=k8s /vt/config /vt/config
Copy link
Contributor Author

@keweishang keweishang Feb 26, 2021

Choose a reason for hiding this comment

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

I'm not sure if the directory /vt/config is needed here? I'm copying it here because the mysqlctld docker image has it too.

Ideally, it'd be great if this docker image is more useful than just serving my purpose, which is to copy the /vt/bin/mysqlctl binary from this image (e.g. see example here).

Copy link
Member

@deepthi deepthi Feb 26, 2021

Choose a reason for hiding this comment

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

/vt/config contains mysql .cnf files so it is probably required.

Copy link
Member

@deepthi deepthi left a comment

Choose a reason for hiding this comment

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

I'm going to approve this as-is, though in the long-term we should stop using the k8s base image altogether and unify / reduce the number of docker images we produce.
cc @derekperkins

@keweishang
Copy link
Contributor Author

keweishang commented Mar 2, 2021

Shall we merge the PR? @derekperkins @deepthi

@deepthi
Copy link
Member

deepthi commented Mar 2, 2021

Shall we merge the PR? @derekperkins @deepthi

I'm about to. I will build and push a docker image later today.

@deepthi deepthi merged commit fbc5f9f into vitessio:master Mar 2, 2021
@deepthi
Copy link
Member

deepthi commented Mar 2, 2021

I've pushed a vitess/mysqlctl:latest image to dockerhub. For now, this is a one-time build. We'll do a tagged version along with the next release.

@keweishang
Copy link
Contributor Author

Thank you very much @deepthi! Having the vitess/mysqlctl:latest image available on dockerhub should work for us. I'll test it this or next week.

@askdba askdba added this to the v10.0 milestone Mar 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants