NOTICE: This is a premium pico+ service
# Features
- Private docker image registry
- Use SSH keys for authentication
docker push
anddocker pull
work exactly the same
# How it works
We leverage web tunnels to open a portal to our private image registry where you
can access it via localhost
. This is accomplished by our open source library
ptun.
# Example usage
1ssh -L 1338:localhost:80 -N imgs.sh
2# separate terminal
3docker push localhost:1338/my-img:latest
4docker pull localhost:1338/my-img:latest
5# or use the docker API
6curl http://localhost:1338/v2/_catalog
# SSH CLI
We provide a CLI to manage your docker images.
1ssh imgs.sh help
2ssh imgs.sh ls
3ssh imgs.sh rm alpine --write
# GitHub Action
Need to use imgs.sh with CI/CD? Just create the SSH tunnel before trying to use
docker
. We provide a custom image based on autossh
to make this easier:
1name: build and push docker image
2
3on:
4 push:
5 branches: [main]
6
7jobs:
8 build:
9 runs-on: ubuntu-latest
10 # start ssh tunnel as a container service
11 services:
12 registry:
13 image: ghcr.io/picosh/ptun/autossh:latest
14 env:
15 USERNAME: <pico_user>
16 PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
17 ports:
18 - 5000:5000
19 steps:
20 - name: Set up QEMU
21 uses: docker/setup-qemu-action@v3
22 - name: Set up Docker Buildx
23 uses: docker/setup-buildx-action@v3
24 with:
25 driver-opts: network=host
26 - name: Build and push
27 uses: docker/build-push-action@v5
28 with:
29 push: true
30 tags: localhost:5000/image:latest
# Ready to join pico?
Create an account using only your SSH key.
Get Started