{"id":20490832,"url":"https://github.com/circleci-public/cimg-mysql","last_synced_at":"2025-04-13T16:34:28.180Z","repository":{"id":40258453,"uuid":"431849058","full_name":"CircleCI-Public/cimg-mysql","owner":"CircleCI-Public","description":"The CircleCI MySQL Docker Convenience Image.","archived":false,"fork":false,"pushed_at":"2024-03-21T18:50:54.000Z","size":69,"stargazers_count":6,"open_issues_count":2,"forks_count":5,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-03-27T07:35:46.563Z","etag":null,"topics":["circleci","circleci-cimg","convenience-image","docker","mysql"],"latest_commit_sha":null,"homepage":"https://circleci.com/developer/images/image/cimg/mysql","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CircleCI-Public.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-25T13:08:15.000Z","updated_at":"2024-07-11T18:12:25.000Z","dependencies_parsed_at":"2023-11-22T18:28:07.584Z","dependency_job_id":"392e7bc2-f20e-4916-8ce3-b4e68e42dca1","html_url":"https://github.com/CircleCI-Public/cimg-mysql","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcimg-mysql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcimg-mysql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcimg-mysql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcimg-mysql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CircleCI-Public","download_url":"https://codeload.github.com/CircleCI-Public/cimg-mysql/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248744408,"owners_count":21154863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circleci","circleci-cimg","convenience-image","docker","mysql"],"created_at":"2024-11-15T17:18:40.967Z","updated_at":"2025-04-13T16:34:28.158Z","avatar_url":"https://github.com/CircleCI-Public.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\t\u003cp\u003e\n\t\t\u003cimg alt=\"CircleCI Logo\" src=\"img/circle-circleci.svg?raw=true\" width=\"75\" /\u003e\n\t\t\u003cimg alt=\"Docker Logo\" src=\"img/circle-docker.svg?raw=true\" width=\"75\" /\u003e\n\t\t\u003cimg alt=\"MySQL Logo\" src=\"img/circle-mysql.svg?raw=true\" width=\"75\" /\u003e\n\t\u003c/p\u003e\n\t\u003ch1\u003eCircleCI Convenience Images =\u003e MySQL\u003c/h1\u003e\n\t\u003ch3\u003eA Continuous Integration focused MySQL Docker image built to run on CircleCI\u003c/h3\u003e\n\u003c/div\u003e\n\n[![CircleCI Build Status](https://circleci.com/gh/CircleCI-Public/cimg-mysql.svg?style=shield)](https://circleci.com/gh/CircleCI-Public/cimg-mysql) [![Software License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/CircleCI-Public/cimg-mysql/master/LICENSE) [![Docker Pulls](https://img.shields.io/docker/pulls/cimg/mysql)](https://hub.docker.com/r/cimg/mysql) [![CircleCI Community](https://img.shields.io/badge/community-CircleCI%20Discuss-343434.svg)](https://discuss.circleci.com/c/ecosystem/circleci-images) [![Repository](https://img.shields.io/badge/github-README-brightgreen)](https://github.com/CircleCI-Public/cimg-mysql)\n\n***This image is designed to supercede the legacy CircleCI MySQL image, `circleci/mysql`.***\n\n`cimg/mysql` is a Docker image created by CircleCI with continuous integration builds in mind.\n\n## Support Policy\n\nThe CircleCI Docker Convenience Image support policy can be found on the [CircleCI docs](https://circleci.com/docs/convenience-images-support-policy) site. This policy outlines the release, update, and deprecation policy for CircleCI Docker Convenience Images.\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [How This Image Works](#how-this-image-works)\n- [Development](#development)\n- [Contributing](#contributing)\n- [Additional Resources](#additional-resources)\n- [License](#license)\n\n\n## Getting Started\n\nThis image can be used with the CircleCI `docker` executor as a secondary image.\nFor example:\n\n```yaml\njobs:\n  build:\n    docker:\n      - image: cimg/go:1.17\n      - image: cimg/mysql:8.0\n    steps:\n      - checkout\n```\n\nIn the above example, the CircleCI Go Docker image is used for the primary container while the MySQL image is used as a secondary.\nMore specifically, the tag `8.0` is used meaning the version of MySQL will be v8.0.\nYou can now connect to a MySQL instance from the primary image within the steps for this job.\n\n\n## How This Image Works\n\nThis image contains the MySQL database and its complete toolchain.\n\n#### RAM\n\nThe legacy version of this image, `circleci/mysql` had a RAM variant.\nThis is no longer the case.\nWe're determining how much of a performance increase does this variant actually give before we decide to bring it back.\nIf you used the legacy MySQL image and you have data on the ram vs non-ram variant build times, please open a GitHub Issue and let us know.\n\n\n### Tagging Scheme\n\nThis image has the following tagging scheme:\n\n```\ncimg/mysql:\u003cmysql-version\u003e\n```\n\n`\u003cmysql-version\u003e` - The version of MySQL to use.\n\n\n## Development\n\nImages can be built and run locally with this repository.\nThis has the following requirements:\n\n- local machine of Linux (Ubuntu tested) or macOS\n- modern version of Bash (v4+)\n- modern version of Docker Engine (v19.03+)\n\n### Cloning For Community Users (no write access to this repository)\n\nFork this repository on GitHub.\nWhen you get your clone URL, you'll want to add `--recurse-submodules` to the clone command in order to populate the Git submodule contained in this repo.\nIt would look something like this:\n\n```bash\ngit clone --recurse-submodules \u003cmy-clone-url\u003e\n```\n\nIf you missed this step and already cloned, you can just run `git submodule update --recursive` to populate the submodule.\nThen you can optionally add this repo as an upstream to your own:\n\n```bash\ngit remote add upstream https://github.com/CircleCI-Public/cimg-mysql.git\n```\n\n### Cloning For Maintainers ( you have write access to this repository)\n\nClone the project with the following command so that you populate the submodule:\n\n```bash\ngit clone --recurse-submodules git@github.com:CircleCI-Public/cimg-mysql.git\n```\n\n### Generating Dockerfiles\n\nDockerfiles can be generated for a specific MySQL version using the `gen-dockerfiles.sh` script.\nFor example, to generate the Dockerfile for v8.0, you would run the following from the root of the repo:\n\n```bash\n./shared/gen-dockerfiles.sh 8.0\n```\n\nThe generated Dockerfile will be located at `./8.0/Dockefile`.\nTo build this image locally and try it out, you can run the following:\n\n```bash\ndocker build -t test/mysql:8.0 -f 8.0/Dockerfile .\ndocker run -it test/mysql:8.0 bash\n```\n\n### Building the Dockerfiles\n\nTo build the Docker images locally as this repository does, you'll want to run the `build-images.sh` script:\n\n```bash\n./build-images.sh\n```\n\nThis would need to be run after generating the Dockerfiles first.\nWhen releasing proper images for CircleCI, this script is run from a CircleCI pipeline and not locally.\n\n### Publishing Official Images (for Maintainers only)\n\nThe individual scripts (above) can be used to create the correct files for an image, and then added to a new git branch, committed, etc.\nA release script is included to make this process easier.\nTo make a proper release for this image, let's use the fake MySQL version of v9.99, you would run the following from the repo root:\n\n```bash\n./shared/release.sh 9.99\n```\n\nThis will automatically create a new Git branch, generate the Dockerfile(s), stage the changes, commit them, and push them to GitHub.\nThe commit message will end with the string `[release]`.\nThis string is used by CircleCI to know when to push images to Docker Hub.\nAll that would need to be done after that is:\n\n- wait for build to pass on CircleCI\n- review the PR\n- merge the PR\n\nThe main branch build will then publish a release.\n\n### Incorporating Changes\n\nHow changes are incorporated into this image depends on where they come from.\n\n**build scripts** - Changes within the `./shared` submodule happen in its [own repository](https://github.com/CircleCI-Public/cimg-shared).\nFor those changes to affect this image, the submodule needs to be updated.\nTypically like this:\n\n```bash\ncd shared\ngit pull\ncd ..\ngit add shared\ngit commit -m \"Updating submodule for foo.\"\n```\n\n**parent image** - By design, when changes happen to a parent image, they don't appear in existing MySQL images.\nThis is to aid in \"determinism\" and prevent breaking customer builds.\nNew Go images will automatically pick up the changes.\n\nIf you *really* want to publish changes from a parent image into the MySQL image, you have to build a specific image version as if it was a new image.\nThis will create a new Dockerfile and once published, a new image.\n\n**MySQL specific changes** - Editing the `Dockerfile.template` file in this repo will modify the MySQL image specifically.\nDon't forget that to see any of these changes locally, the `gen-dockerfiles.sh` script will need to be run again (see above).\n\n\n## Contributing\n\nWe encourage [issues](https://github.com/CircleCI-Public/cimg-mysql/issues) and [pull requests](https://github.com/CircleCI-Public/cimg-mysql/pulls) against this repository.\n\nPlease check out our [contributing guide](.github/CONTRIBUTING.md) which outlines best practices for contributions and what you can expect from the images team at CircleCI.\n\n\n## Additional Resources\n\n[CircleCI Docs](https://circleci.com/docs/) - The official CircleCI Documentation website.\n[CircleCI Configuration Reference](https://circleci.com/docs/2.0/configuration-reference/#section=configuration) - From CircleCI Docs, the configuration reference page is one of the most useful pages we have.\nIt will list all of the keys and values supported in `.circleci/config.yml`.\n[Docker Docs](https://docs.docker.com/) - For simple projects this won't be needed but if you want to dive deeper into learning Docker, this is a great resource.\n\n\n## License\n\nThis repository is licensed under the MIT license.\nThe license can be found [here](./LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircleci-public%2Fcimg-mysql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcircleci-public%2Fcimg-mysql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircleci-public%2Fcimg-mysql/lists"}