KEINOS / Dockerfile_of_SQLite3

Latest SQLite3 on Alpine Docker image. (AMD64/Intel, Arm64, Arm6, Arm7)
MIT License
34 stars 15 forks source link
arm6 arm64 armv7 docker docker-image sqlite sqlite3

Dockerfile of SQLite3

Alpine Docker image of SQLite3 built from the latest source code.

docker pull keinos/sqlite3:latest
Image Information (Dockerfile, Security Scan, etc.) - Repositories/Registries: - [Image Registry](https://hub.docker.com/r/keinos/sqlite3) @ DockerHub - [Dockerfile](https://github.com/KEINOS/Dockerfile_of_SQLite3/blob/master/Dockerfile) @ GitHub - [Issues](https://github.com/KEINOS/Dockerfile_of_SQLite3/issues) @ GitHub - Build Info: - Base Image: `alpine:latest` - SQLite3 Source: [https://www.sqlite.org/src/](https://www.sqlite.org/src/doc/trunk/README.md) @ SQLite.org - Update Interval: [Once a week](https://github.com/KEINOS/Dockerfile_of_SQLite3/blob/master/.github/workflows/weekly-update.yml) - Basic Vulnerability Scan: - [Snyk Docker Scan](https://docs.snyk.io/integrate-with-snyk/snyk-ci-cd-integrations/github-actions-for-snyk-setup-and-checking-for-vulnerabilities/snyk-docker-action) and [Grype Container Scan](https://github.com/anchore/scan-action) on push, PR and merge. - Scan Interval: Once a week. - See the [Security overview](https://github.com/KEINOS/Dockerfile_of_SQLite3/security) for the details.

Usage

Pull the latest image

$ docker pull keinos/sqlite3:latest
**snip**
SBOM Support The images supports [SBOM](https://www.cisa.gov/sbom). You can check the software components used in the image as below. ```shellsession $ docker sbom keinos/sqlite3:latest Syft v0.43.0 ✔ Loaded image ✔ Parsed image ✔ Cataloged packages [14 packages] NAME VERSION TYPE alpine-baselayout 3.6.5-r0 apk alpine-baselayout-data 3.6.5-r0 apk alpine-keys 2.4-r1 apk apk-tools 2.14.4-r0 apk busybox 1.36.1-r29 apk busybox-binsh 1.36.1-r29 apk ca-certificates-bundle 20240226-r0 apk libcrypto3 3.3.1-r0 apk libssl3 3.3.1-r0 apk musl 1.2.5-r0 apk musl-utils 1.2.5-r0 apk scanelf 1.3.7-r2 apk ssl_client 1.36.1-r29 apk zlib 1.3.1-r1 apk ```

Specify the version to pull

$ docker pull keinos/sqlite3:3.44.2
...

Build locally

$ docker build -t sqlite3:local https://github.com/KEINOS/Dockerfile_of_SQLite3.git
...

Interactive

Running sqlite3 command inside the container interactively.

$ docker run --rm -it -v "$(pwd):/workspace" -w /workspace keinos/sqlite3
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open ./sample.db
sqlite> CREATE TABLE table_sample(timestamp TEXT, description TEXT);
sqlite> INSERT INTO table_sample VALUES(datetime('now'),'First sample data. Foo');
sqlite> INSERT INTO table_sample VALUES(datetime('now'),'Second sample data. Bar');
sqlite> .quit
$ ls
sample.db

Command

$ docker run --rm keinos/sqlite3 sqlite3 --version
3.38.2 2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f
$ ls
sample.db
$ docker run --rm -it -v "$(pwd):/workspace" keinos/sqlite3 sqlite3 /workspace/sample.db -header -column 'SELECT rowid, * FROM table_sample;'
rowid  timestamp            description
-----  -------------------  -----------------------
1      2022-04-16 14:09:52  First sample data. Foo
2      2022-04-16 14:09:58  Second sample data. Bar

Run test

This container includes a simple test script.

You can run the script to see if the container and sqlite3 binary is working. Though, not sutiable for HEALTHCHECK usage.

$ docker run --rm keinos/sqlite3 /run-test.sh
- Creating test DB ... created
rowid  timestamp            description
-----  -------------------  -----------------------
1      2022-04-16 14:18:34  First sample data. Hoo
2      2022-04-16 14:18:34  Second sample data. Bar
- Testing ...
  1st row value ... OK
  2nd row value ... OK

- Test result:
success
$ echo $?
0

ToDo

License