我想从在 GitHub Actions 中运行的容器内部 ping 一些外部 IP。
我有一个简单的 GitHub 操作(考虑此工作流程):
name: PING
on:
push:
jobs:
ping:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Ping Internet
run: docker-compose -f test/docker-compose.yml up --force-recreate --build --abort-on-container-exit
和一个简单的
docker-compose
文件:
version: '3.1'
services:
pinger:
privileged: true
image: alpine:3.17
command: ping -c 16 -s 64 8.8.8.8
networks:
default:
ipv4_address: 10.0.0.5
networks:
default:
driver: bridge
ipam:
config:
- subnet: 10.0.0.0/24
gateway: 10.0.0.1
现在,
docker-compose -f test/docker-compose.yml up --force-recreate --build --abort-on-container-exit
命令在本地运行得很好,但在 GitHub Actions 环境中失败 - 显然,无法收到 ping 响应,因此我认为互联网无法访问。
有人有什么想法吗,为什么会发生这种情况?
也许由于 GitHub Actions 环境的性质,我应该连接到一些现有的网络或以某种方式指定它?
如何从在 GitHub Action 内运行的 Docker 容器访问互联网?
最近,我发现 ping 在 GitHub actions 中根本不起作用,因为托管运行器使用特定类型的 Azure 计算机,而该计算机在设计上不允许这样做:(