Shipfox Runners
Specificities
Shipfox runners aim to be 100% compatible with GitHub actions hosted runners.
However, there are a few known differences in our infrastructure that can cause unexpected behavior. This page lists those differences and provides available workarounds.
Docker service containers with container-based jobs
GitHub Actions supports:
- Service containers, often used for databases or caching layers in integration tests.
- Container-based jobs, where the job itself runs inside a container.
Combining both currently triggers a known issue in the GitHub Actions runner: actions/runner#2783
The job container cannot resolve the hostname of service containers via the default Docker network.
Workaround: Use SHIPFOX_HOST
environment variable
Shipfox provides a workaround using a custom environment variable.
By setting SHIPFOX_HOST
in the service container, Shipfox will alias the container under that hostname in the job’s network.
jobs:
service_container_in_container:
name: Service container in container
runs-on: shipfox-2vcpu-ubuntu-2404
# Run the job inside a container
container:
image: ubuntu:24.04
services:
hello:
image: nginxdemos/hello
env:
# Ensures service is accessible as `http://hello`
SHIPFOX_HOST: hello
steps:
- name: Install dependencies
run: |
apt-get update
apt-get install -y curl
- name: Network connectivity
run: curl -v --connect-timeout 10 --fail http://hello:80