Multi usage container image for hosting various applications
10K+
Dolphin is still under heavy development, please create an issue if you face any bugs or request a feature
Dolphin is a cool container image that prepared everything for you!
⨠Features:
s6-overlaydocker run --name dolphin-box -d \
-e GIT_URL="https://domain.com" \
--restart unless-stopped \
docker.io/wolfyuan/dolphin:node
Command breakdown:
-e GIT_URL="https://domain.com" - Environment variables for controlling container, see hereā for a full list
You can add multiple variables, like:
-e GIT_URL="https://domain.com" -e SYSTEM_PACKAGES="automake"So the whole command will be
docker run --name dolphin-box -d \ -e GIT_URL="https://domain.com" \ -e SYSTEM_PACKAGES="automake" \ --restart unless-stopped \ docker.io/wolfyuan/dolphin:node
--restart unless-stopped - Restart your container when it fails or you reboot your machine unless you stop it by yourself
docker.io/wolfyuan/dolphin:node - Container image, where node represents to image that's designed for this language, see hereā for full list
Most image supports
armbased CPU unless mentioned in the note.
| Image name | Description | Variants | Tag | Architecture |
|---|---|---|---|---|
| Node.js | Image with necessary software to run Node.js software | alpine, ubuntu | node | amd64, arm64 (ubuntu), arm/v7 (ubuntu) |
| Base | Base image, you should NOT use this image when running | alpine, ubuntu | base | amd64, arm64,arm/v7 |
Images are tagged with this format: [Image Tag]-[Image Variants]
For example, the node image with ubuntu base will be: node-ubuntu
If you don't specify image variants, it will pull the ubuntu base
For example, pulling the node tag will pull the node-ubuntu image
Environment variables:
| Environment variables name | Description |
|---|---|
SYSTEM_PACKAGES | Additional packages to install when the container starts |
PACKAGES_LOCATION | System packages cache location |
PACKAGES_DISABLE_CACHE | Disable system package cache (Set to any value to disable) |
GIT_URL | Git repo to clone when the container starts |
Workflow:
GIT_URL| š Note |
|---|
You can install additional system packages via the SYSTEM_PACKAGES variable |
For example, installing automake on the base system, just set SYSTEM_PACKAGES with the value automake |
When installing multiple system packages, separate them by spaces, for example, automake cmake |
| š Note |
|---|
Alpine-based image will use apk to install packages |
Ubuntu-based image will use apt-get to install packages |
| š Note |
|---|
Downloaded packages will be cached to /home/dolphin/packages if PACKAGES_LOCATION isn't changed |
Environment variables:
| Environment variables name | Description |
|---|---|
NODE_VERSION | Node.js version to install, overrides .nvmrc |
NODE_START_SCRIPT | Script to run when container finished running init script |
Workflow:
NODE_VERSION or .nvmrc in your projectNODE_START_SCRIPT or script in package.json via the detected package manager| š Note |
|---|
Supported package managers: pnpm, yarn, npm |
| š Note |
|---|
In package manager: pnpm > yarn > npm |
In node version: NODE_VERSION > .nvmrc |
Environment variables:
| Environment variables name | Description |
|---|---|
PYTHON_VERSION | Python version to install, overrides .python-version |
PYTHON_BUILD_SCRIPT | Script to run after installing Python packages |
PYTHON_START_SCRIPT | Script to run when container finished running init script |
PYTHON_START_FILE | Script to run when container finished running init script |
Workflow:
PYTHON_VERSION or .python-version in your projectpipPYTHON_START_SCRIPT and the script in PYTHON_START_FILE with command python3| ā ļø Warning |
|---|
Due to how pyenv switch Python version, it's recommended to presist your container storage, see Presist data inside containerā for more info |
| š Note |
|---|
When PYTHON_START_SCRIPT and PYTHON_START_FILE both exists, it will run PYTHON_START_SCRIPT first, and run PYTHON_START_FILE after previous script has finished |
| š Note |
|---|
In Python version: PYTHON_VERSION > .python-version |
You can mount two types of directory to the Dolphin container:
/home/dolphin: Contain your code (space), and other runtime binaries installation like nvm, pyenv
Use this when you want to save more bandwidth
/home/dolphin/space
Use this when you want to prevent rebuilding your project
To mount the directory, append these arguments when starting the Docker container:
-v /path/to/your/host/folder:/home/dolphin
or
-v /path/to/your/host/folder:/home/dolphin/space
| ā ļø Warning |
|---|
| You can't mount two directories at the same time! |
It SHOULD work, maybe
I haven't tried it, but your application will be run in a rootless environment, so it might not work.
Content type
Image
Digest
sha256:8af02ab12ā¦
Size
253.6 MB
Last updated
over 2 years ago
docker pull wolfyuan/dolphin:python