Skip to content

Add mysqlctl docker image#7557

Merged
deepthi merged 2 commits intovitessio:masterfrom
keweishang:add-mysqlctl-docker-image
Mar 2, 2021
Merged

Add mysqlctl docker image#7557
deepthi merged 2 commits intovitessio:masterfrom
keweishang:add-mysqlctl-docker-image

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>
@keweishang keweishang force-pushed the add-mysqlctl-docker-image branch from 04a3452 to 9053ddd Compare February 26, 2021 14:26
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
Collaborator

@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
Collaborator

@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
Collaborator

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
Collaborator

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