{"id":43903259,"url":"https://github.com/singlestore-labs/singlestoredb-dev-image","last_synced_at":"2026-02-06T19:20:34.690Z","repository":{"id":104432784,"uuid":"527828182","full_name":"singlestore-labs/singlestoredb-dev-image","owner":"singlestore-labs","description":"The SingleStoreDB Dev Container is the fastest way to develop with SingleStore on your laptop or in a CI/CD environment.","archived":false,"fork":false,"pushed_at":"2026-01-12T20:40:26.000Z","size":830,"stargazers_count":60,"open_issues_count":18,"forks_count":27,"subscribers_count":25,"default_branch":"main","last_synced_at":"2026-01-18T02:14:39.600Z","etag":null,"topics":["ci","cicd","database","developer","development","development-tools","docker","docker-container","docker-image","github-actions","relational-database","singlestore","singlestoredb","sql"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/singlestore-labs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-23T04:10:36.000Z","updated_at":"2026-01-14T04:45:27.000Z","dependencies_parsed_at":"2024-01-10T16:09:16.597Z","dependency_job_id":"5f93c254-4ae7-4005-a1c0-8c58e6d05b3e","html_url":"https://github.com/singlestore-labs/singlestoredb-dev-image","commit_stats":null,"previous_names":[],"tags_count":82,"template":false,"template_full_name":null,"purl":"pkg:github/singlestore-labs/singlestoredb-dev-image","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singlestore-labs%2Fsinglestoredb-dev-image","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singlestore-labs%2Fsinglestoredb-dev-image/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singlestore-labs%2Fsinglestoredb-dev-image/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singlestore-labs%2Fsinglestoredb-dev-image/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/singlestore-labs","download_url":"https://codeload.github.com/singlestore-labs/singlestoredb-dev-image/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singlestore-labs%2Fsinglestoredb-dev-image/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29173490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T16:33:35.550Z","status":"ssl_error","status_checked_at":"2026-02-06T16:33:30.716Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ci","cicd","database","developer","development","development-tools","docker","docker-container","docker-image","github-actions","relational-database","singlestore","singlestoredb","sql"],"created_at":"2026-02-06T19:20:34.066Z","updated_at":"2026-02-06T19:20:34.675Z","avatar_url":"https://github.com/singlestore-labs.png","language":"Shell","readme":"# SingleStore Dev Image \u003c!-- omit in toc --\u003e\n[![GitHub Actions status image](https://github.com/singlestore-labs/singlestoredb-dev-image/actions/workflows/build.yml/badge.svg)](https://github.com/singlestore-labs/singlestoredb-dev-image/actions)\n\nThe SingleStore Dev Image is the fastest way to develop with [SingleStore][singlestore] on your laptop or in a CI/CD environment (including [GitHub Actions][header-gh-actions]). This Docker image is **not supported for production workloads or benchmarks** so please keep this in mind when using it.\n\nIf you have any questions or issues, please file an issue on the [GitHub repo][gh-issues] or our [forums].\n\n[header-gh-actions]: #how-to-run-singlestore-in-github-actions\n\n- [How to run the Docker image?](#how-to-run-the-docker-image)\n  - [How to run the Docker image on **Linux** or **Apple Intel**?](#how-to-run-the-docker-image-on-linux-or-apple-intel)\n  - [How to run the Docker image on **Apple silicon**?](#how-to-run-the-docker-image-on-apple-silicon)\n  - [How to run the Docker image on **Windows**?](#how-to-run-the-docker-image-on-windows)\n- [How to open a SQL shell?](#how-to-open-a-sql-shell)\n- [How to access the Studio UI?](#how-to-access-the-studio-ui)\n- [Where can I learn how to use SingleStore?](#where-can-i-learn-how-to-use-singlestore)\n- [How to access the Data API?](#how-to-access-the-data-api)\n- [How to use WebAssembly (Wasm) backed functions?](#how-to-use-webassembly-wasm-backed-functions)\n- [How to use Docker volumes for persistent storage?](#how-to-use-docker-volumes-for-persistent-storage)\n- [How to initialize this container with a SQL file?](#how-to-initialize-this-container-with-a-sql-file)\n- [How to set SingleStore global variables?](#how-to-set-singlestore-global-variables)\n- [How to use a specific SingleStore version?](#how-to-use-a-specific-singlestore-version)\n  - [Which SingleStore versions are available?](#which-singlestore-versions-are-available)\n  - [How to build a custom version of this Docker image with a specific SingleStore version?](#how-to-build-a-custom-version-of-this-docker-image-with-a-specific-singlestore-version)\n  - [How to specify a SingleStore version at runtime?](#how-to-specify-a-singlestore-version-at-runtime)\n- [How to use this container in a CI/CD environment?](#how-to-use-this-container-in-a-cicd-environment)\n  - [How to run SingleStore in GitHub Actions?](#how-to-run-singlestore-in-github-actions)\n  - [How to run SingleStore in GitLab CI/CD?](#how-to-run-singlestore-in-gitlab-cicd)\n- [How to upgrade from singlestore/cluster-in-a-box?](#how-to-upgrade-from-singlestorecluster-in-a-box)\n- [Apple silicon performance notes](#apple-silicon-performance-notes)\n\n## How to run the Docker image?\n\nThis Docker image allows a cluster to be deployed in a self-contained container without the need for a license.\n\nWhen running a Docker container on a machine with:\n\n* More than 32 cores, include the `--cpus=32` option.\n* More than 128GB of RAM, include the `--memory=128g` option.\n\n\u003e **Note**\n\u003e \n\u003e SingleStore recommends using an explicit image version tag whenever possible from the [list of image tags][versions] and/or [the changelog][changelog].\n\n### How to run the Docker image on **Linux** or **Apple Intel**?\n\n*See next section for Apple silicon instructions.*\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR SINGLESTORE ROOT PASSWORD\" \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    ghcr.io/singlestore-labs/singlestoredb-dev:latest\n```\n\nIf you want to configure a specific license, simply pass it as an environment variable:\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR SINGLESTORE ROOT PASSWORD\" \\\n    -e SINGLESTORE_LICENSE=\"YOUR SINGLESTORE LICENSE\" \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    ghcr.io/singlestore-labs/singlestoredb-dev:latest\n```\n\nIf you want to use Kai (API for MongoDB clients), set `ENABLE_KAI=1` and expose port 27017:\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR SINGLESTORE ROOT PASSWORD\" \\\n    -e ENABLE_KAI=1 \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 -p 27017:27017 \\\n    ghcr.io/singlestore-labs/singlestoredb-dev:latest\n```\n\nThen connect with, for example:\n\n```bash\nmongosh \"mongodb://root:YOUR SINGLESTORE ROOT PASSWORD@localhost:27017/?authMechanism=PLAIN\u0026loadBalanced=true\"\n```\n\n### How to run the Docker image on **Apple silicon**?\n\n\u003e **Note**\n\u003e\n\u003e The latest SingleStore Dev Image uses AlmaLinux 10 as the base OS, which relies on the x86‑64‑v3 instruction set. This version should work as expected on:\n\u003e\n\u003e * Apple silicon Macs running macOS 26\n\u003e * Intel Macs running macOS 15 (Sequoia) and macOS 26 (Tahoe)\n\u003e \n\u003e The version of Rosetta on Apple silicon Macs running macOS 15 does not support the x86‑64‑v3 instruction set. When attempting to run the latest SingleStore Dev Image on these Macs, a `Fatal glibc error: CPU does not support x86-64-v3` message is displayed.\n\u003e\n\u003e To remedy this, either:\n\u003e * Upgrade your Apple silicon Mac to [macOS 26](https://www.apple.com/os/macos/)\n\u003e * Use [SingleStore Helios](https://www.singlestore.com/pricing/) for development\n\nFirst, make sure you are using Docker Desktop which supports the latest virtualization technology on Apple silicon.\n\nSecond, **you must enable \"Use Virtualization framework\" and \"Use Rosetta for x86_64/amd64 emulation on Apple Silicon\" in Docker Desktop preferences**. If you do not do this, SingleStore will run very slowly and consume a lot of power on your Mac. You can find these settings under Docker Desktop \u003e Preferences \u003e General.\n\n![Screenshot of enabling the new Virtualization framework in Docker's preferences](.github/osx_docker_new_prefs.jpeg)\n\nThird, run the following command to start SingleStore. Note the `--platform linux/amd64` instruction which is required when running on Apple silicon.\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR SINGLESTORE ROOT PASSWORD\" \\\n    --platform linux/amd64 \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    ghcr.io/singlestore-labs/singlestoredb-dev:latest\n```\n\n### How to run the Docker image on **Windows**?\n\nWindows PowerShell and Command Prompt (CMD) work best if you run the command on a single line. Alternatively you can use backticks for multi-line strings in PowerShell. Either way, the following single-line version of the command will work on Windows.\n\n```bash\ndocker run -d --name singlestoredb-dev -e ROOT_PASSWORD=\"YOUR SINGLESTORE ROOT PASSWORD\" -p 3306:3306 -p 8080:8080 -p 9000:9000 ghcr.io/singlestore-labs/singlestoredb-dev:latest\n```\n\n## How to open a SQL shell?\n\nThis image includes a shell which you can run interactively using `docker exec`.\n\nThe following command will prompt you for the root password. \n\n```bash\ndocker exec -it singlestoredb-dev singlestore -p\n```\n\nYou can also provide the root password at the command line immediately after the `-p` flag like so:\n\n```bash\ndocker exec -it singlestoredb-dev singlestore -pYOUR_ROOT_PASSWORD\n```\n\nYou can also connect to SingleStore using any MySQL compatible client on your own machine using the following connection details:\n\n| Key      | Value              |\n| -------- | ------------------ |\n| Host     | `127.0.0.1`          |\n| Port     | `3306`               |\n| Username | `root`               |\n| Password | YOUR_ROOT_PASSWORD |\n\n## How to access the Studio UI?\n\nThe Studio UI is a convenient way to connect to SingleStore and run queries via a browser-based UI. The UI runs by default on port 8080 in the container. Assuming that you have forwarded port 8080 to your local machine, you can access the UI at [http://localhost:8080](http://localhost:8080).\n\nYou will see a login screen when you open the UI. Use the username `root` and the associated password you set when starting the container.\n\n## Where can I learn how to use SingleStore?\n\nNow that you have SingleStore running, please check out the following sections of our official documentation for guides on what to do next.\n\n * [Connect to SingleStore](https://docs.singlestore.com/db/latest/connect-to-singlestore/)\n * [Developer Resources](https://docs.singlestore.com/db/latest/developer-resources/)\n * [Integrations](https://docs.singlestore.com/db/latest/integrate-with-singlestore/)\n * [Load Data](https://docs.singlestore.com/db/latest/load-data/)\n\n## How to access the Data API?\n\nIn addition to supporting the MySQL protocol, SingleStore also has a JSON over HTTP protocol called the [Data API][data-api] which you can access at port 9000 in the container. Assuming that you have forwarded port 9000 to your local machine, the following `curl` command demonstrates how you can use the Data API:\n\n```bash\n~ ➜ curl -s -XPOST -H \"content-type: application/json\" -d '{ \"sql\": \"select 1\" }' root:YOUR_ROOT_PASSWORD@localhost:9000/api/v1/query/rows\n{\n  \"results\": [\n    {\n      \"rows\": [\n        {\n          \"1\": 1\n        }\n      ]\n    }\n  ]\n}\n```\n\n\u003e **Note**\n\u003e \n\u003e For more information on how to use the Data API please [visit the documentation.][data-api]\n\n## How to use WebAssembly (Wasm) backed functions?\n\nThe Code Engine feature in SingleStore supports creating functions (UDFs and\nTVFs) using code compiled to WebAssembly (Wasm). This feature supports any\nlanguage that can compile to the Wasm core specification, which allows you to\ncreate UDFs in a language of your choice using existing code libraries and run\nthem in a sandboxed environment for enhanced security. It uses a linear memory\nmodel and provides hard memory protection boundaries.\n\nThis Docker image has Wasm functions enabled by default. You can learn how to compile and load Wasm UDFs and UDAs into SingleStore [in our docs][wasm].\n\n## How to use Docker volumes for persistent storage?\n\n\u003e **Note**\n\u003e \n\u003e If you are [specifying a Singlestore version at runtime](#how-to-specify-a-singlestore-version-at-runtime), your data will always be overwritten when the container restarts each time, as the container will always attempt to re-download and re-initialize the installed version on each run.\n\u003e\n\u003e To get around this, build a [custom image](#how-to-build-a-custom-version-of-this-docker-image-with-a-specific-singlestore-version) with your specific version.\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR ROOT PASSWORD\" \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    -v my_cool_volume:/data \\\n    ghcr.io/singlestore-labs/singlestoredb-dev\n```\n\nAfter creating the container with a volume, you can re-create the container using the same volume to keep your data around. This can be used to upgrade SingleStore to new versions without losing your data. Keep in mind that SingleStore does **not** support downgrading. Make sure to take a backup of the volume before running the upgrade.\n\n\u003e **Note**\n\u003e \n\u003e In order to mount a host volume to the `/data` directory, you will need to `chown` the volume to `UID=999` and `GID=998` before mounting it. The volume will be initialized automatically if empty. Host volumes are only supported by the `/data` directory.\n\nThis Docker image has a number of volume mount points in addition to `/data`. The following table outlines each of the mount points along with roughly their contents:\n\n| Mount Path | Description                                                                                                        |\n| ---------- | ------------------------------------------------------------------------------------------------------------------ |\n| `/data`      | All of the data, config, and cache for the SingleStore cluster.                                                    |\n| `/logs`      | All of the tracelog files containing information that can help debug the cluster or observe its current behavior.  |\n| `/server`    | The installation directory containing server binaries and other installation state.                                |\n\n## How to initialize this container with a SQL file?\n\nWhen this Docker image starts for the first time, it checks to see if an `init.sql` file exists in its filesystem. The default location is `/init.sh`, but it can be customized via the `INIT_SQL` environment variable. If `init.sql` is found, the container will run it against the database as soon as SingleStore is ready.\n\nOne way to do this is by mounting an `init.sql` from your machine into the container using the `-v` flag. Here is an example of doing this:\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR ROOT PASSWORD\" \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    -v ${PWD}/test/init.sql:/init.sql \\\n    ghcr.io/singlestore-labs/singlestoredb-dev\n```\n\nReplace `${PWD}/test/init.sql` with an absolute path to the SQL file with which to initialize SingleStore.\n\n\u003e **Note**\n\u003e \n\u003e The `/init.sql` file will only be run once. To run it again, you will need to delete the file `/data/.init.sql.done` and then restart the container.\n\n## How to set SingleStore global variables?\n\nSingleStore can be configured through the use of global variables which you can [find in our documentation][global-vars]. These variables can be set using environment variables when running the SingleStore Dev Image using the prefix `SINGLESTORE_SET_GLOBAL_`.\n\nFor example, if you want to set `default_partitions_per_leaf` to `1`, you would do this:\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR ROOT PASSWORD\" \\\n    -e SINGLESTORE_SET_GLOBAL_DEFAULT_PARTITIONS_PER_LEAF=1 \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    ghcr.io/singlestore-labs/singlestoredb-dev\n```\n\nMultiple environment variables can be specified if you want to configure multiple global variables in SingleStore.\n\nIf you specify a variable which is not supported by SingleStore, the image will fail to start. You can see the full error message by inspecting the failed Docker container's logs using `docker log`.\n\n## How to use a specific SingleStore version?\n\nBy default, the SingleStore Dev Image uses the latest version of SingleStore available. If you would prefer to use another SingleStore version, you will need to either build a custom version of this image or specify the version at runtime by following the tutorials below.\n\n### Which SingleStore versions are available?\n\nYou can use the version numbers in the first column of the following table in order to run a specific version of SingleStore. If you want to use a particular patch version, just specify that version instead.\n\n| `SINGLESTORE_VERSION`                    | Description                                                      |                                                                                                                                              |\n| ---------------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| 9.0                                      | SingleStore Self-Managed 9.0, see release log for latest version | [changelog](https://docs.singlestore.com/db/v9.0/release-notes/singlestore-memsql/9-0-release-notes/) |\n| 8.9                                      | SingleStore Self-Managed 8.9, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v8.9/release-notes/singlestore-memsql/8-9-release-notes/maintenance-release-changelog-v-8-9/) |\n| 8.7                                      | SingleStore Self-Managed 8.7, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v8.7/release-notes/singlestore-memsql/8-7-release-notes/maintenance-release-changelog-v-8-7/) |\n| 8.5                                      | SingleStore Self-Managed 8.5, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v8.5/release-notes/singlestore-memsql/8-5-release-notes/maintenance-release-changelog-v-8-5/) |\n| 8.1                                      | SingleStore Self-Managed 8.1, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v8.1/release-notes/singlestore-memsql/8-1-release-notes/maintenance-release-changelog/) |\n| 8.0                                      | SingleStore Self-Managed 8.0, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v8.0/release-notes/singlestore-memsql/8-0-release-notes/maintenance-release-changelog/) |\n| 7.8                                      | SingleStore Self-Managed 7.8, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v7.8/release-notes/singlestore-memsql/7-8-release-notes/maintenance-release-changelog/) |\n| 7.6                                      | SingleStore Self-Managed 7.6, see changelog for latest version | [changelog](https://docs.singlestore.com/db/v7.6/release-notes/singlestore-memsql/7-6-release-notes/maintenance-release-changelog/) |\n\n### How to build a custom version of this Docker image with a specific SingleStore version?\n\nThe script `/scripts/switch-version.sh` can be used to easily build a custom version of this image. The fastest way to do this is using Docker build like so:\n\n```bash\ncat \u003c\u003cEOF | docker build -f - -t singlestoredb-dev:custom .\nFROM ghcr.io/singlestore-labs/singlestoredb-dev\nRUN /scripts/switch-version.sh SINGLESTORE_VERSION SINGLESTORE_LICENSE\nEOF\n```\n\nMake sure to replace `SINGLESTORE_VERSION` and `SINGLESTORE_LICENSE` with the SingleStore version you want to use (see table above) as well as your license key. After running this command, you will have a new Docker image called `singlestoredb-dev:custom` with the specific version of SingleStore installed and ready to use.\n\n### How to specify a SingleStore version at runtime?\n\nIn order to use a specific version of SingleStore at runtime, you can start the Docker container with the `SINGLESTORE_VERSION` environment variable set.\n\n\u003e **Warning**\n\u003e \n\u003e This method will result in the container taking much longer to start (roughly a minute) because it has to download and install SingleStore each time. For this reason, SingleStore recommends building a custom version of this Docker image using [the instructions above][custom image method].\n\nHere is an example of using the `SINGLESTORE_VERSION` environment variable to run SingleStore 9.0:\n\n```bash\ndocker run \\\n    -d --name singlestoredb-dev \\\n    -e ROOT_PASSWORD=\"YOUR ROOT PASSWORD\" \\\n    -e SINGLESTORE_VERSION=\"9.0\" \\\n    -p 3306:3306 -p 8080:8080 -p 9000:9000 \\\n    ghcr.io/singlestore-labs/singlestoredb-dev\n```\n\n\u003e **Note**\n\u003e \n\u003e You can mount `/server` into a Docker volume to preserve the installed SingleStore server binaries if you are unable to use the [custom image method]. This will increase subsequent startup performance at the expense of complexity.\n\n[custom image method]: #how-to-build-a-custom-version-of-this-docker-image-with-a-specific-singlestore-version\n\n## How to use this container in a CI/CD environment?\n\nThis Docker image defines a healthcheck which runs every 5 seconds. Any CI/CD system or container runtime which respects the healthcheck should automatically wait for SingleStore to be running and healthy.\n\n### How to run SingleStore in GitHub Actions?\n\nHere is an example workflow which runs SingleStore as a container service and queries it from the job.\n\n```yaml\nname: my-workflow\non: push\n\njobs:\n  my-job:\n    runs-on: ubuntu-latest\n    needs: build-image\n\n    services:\n      singlestoredb:\n        image: ghcr.io/singlestore-labs/singlestoredb-dev\n        ports:\n          - 3306:3306\n          - 8080:8080\n          - 9000:9000\n        env:\n          ROOT_PASSWORD: test\n          # Optional:\n          # SINGLESTORE_LICENSE: ${{ secrets.SINGLESTORE_LICENSE }}\n\n    steps:\n      - name: sanity check using mysql client\n        run: |\n          mysql -u root -ptest -e \"SELECT 1\" -h 127.0.0.1\n```\n\n### How to run SingleStore in GitLab CI/CD?\n\nHere is an example workflow which runs SingleStore as a service and queries it from the job. Unfortunately GitLab does not support Docker healthchecks for services, so additional logic must be added to wait for SingleStore to be ready. There is a [closed GitLab issue](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3984) with more information.\n\n\u003e **Note**\n\u003e \n\u003e You can add your SingleStore license key to GitLab secrets under the key `SINGLESTORE_LICENSE`.\n\n```yaml\nimage: debian\n\nstages:\n  - test\n\nvariables:\n    ROOT_PASSWORD: test\n    # Optional:\n    # SINGLESTORE_LICENSE: $SINGLESTORE_LICENSE\n\ntesting:\n  stage: test\n  services:\n    - name: ghcr.io/singlestore-labs/singlestoredb-dev:latest\n      alias: singlestoredb-dev\n  script:\n    - apt update\n    - apt install -y mariadb-client curl\n    - curl -sI localhost:8080 --retry 30 --retry-connrefused --retry-delay 1\n    - mysql -u root -ptest -h singlestoredb-dev -e \"create database foo\"\n    - mysql -u root -ptest -h singlestoredb-dev -e \"create table foo.bar (id int)\"\n    - mysql -u root -ptest -h singlestoredb-dev -e \"insert into foo.bar values (1),(2),(3)\"\n    - mysql -u root -ptest -h singlestoredb-dev -e \"select * from foo.bar\"\n```\n\n## How to upgrade from `singlestore/cluster-in-a-box`?\n\nBefore this image was created, there was another Docker image called `singlestore/cluster-in-a-box (CIAB)`. The `docker run` command for the CIAB image looked something like this:\n\n```bash\ndocker run -i --init \\\n    --name singlestore-ciab \\\n    -e LICENSE_KEY=${LICENSE_KEY} \\\n    -e ROOT_PASSWORD=${ROOT_PASSWORD} \\\n    -p 3306:3306 -p 8080:8080 \\\n    singlestore/cluster-in-a-box\n```\n\nThe differences between the CIAB image and the Dev image are the following:\n\n * The Dev image no longer needs to be initialized before you can use it\n * Startup time is much better - roughly 5 seconds with the Dev image versus a minute with the CIAB image\n * The [Data API][data-api] and External Functions features are enabled by default in the Dev image\n * Upgrade between versions is supported and tested with the Dev image (downgrades are not supported)\n * The Dev image is distributed through the GitHub Container Repository rather than the Docker Hub\n\nSingleStore recommends using the Dev image unless you need to run earlier versions of SingleStore that have not been released as a `singlestoredb-dev-image`.\n\n## Apple silicon performance notes\n\nMany of SingleStore's performance optimizations are disabled in order to support running on Apple silicon. This can result in unexpectedly poor performance, especially during recovery (restarting SingleStore) and when running queries for the first time.\n\nTo tune this performance impact to be either faster or slower, you can change the number of cores and amount of RAM allocated to the Docker virtual machine by [following the documentation here][docker-resource-docs].\n\n[versions]: https://github.com/singlestore-labs/singlestoredb-dev-image/pkgs/container/singlestoredb-dev/versions\n[changelog]: CHANGELOG.md\n[try-free]: https://www.singlestore.com/try-free/\n[singlestore]: https://www.singlestore.com/\n[gh-issues]: https://github.com/singlestore-labs/singlestoredb-dev-image/issues\n[forums]: https://www.singlestore.com/forum/\n[portal]: https://portal.singlestore.com/\n[data-api]: https://docs.singlestore.com/cloud/reference/data-api/\n[docker-resource-docs]: https://docs.docker.com/desktop/settings/mac/#advanced\n[global-vars]: https://docs.singlestore.com/db/latest/reference/configuration-reference/engine-variables/\n[wasm]: https://docs.singlestore.com/db/latest/reference/code-engine-powered-by-wasm/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinglestore-labs%2Fsinglestoredb-dev-image","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsinglestore-labs%2Fsinglestoredb-dev-image","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinglestore-labs%2Fsinglestoredb-dev-image/lists"}