从容器访问互联网,在 GitHub Actions 中运行

问题描述 投票:0回答:1

我想从在 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 容器访问互联网?

docker docker-compose github-actions docker-network github-actions-runners
1个回答
0
投票

最近,我发现 ping 在 GitHub actions 中根本不起作用,因为托管运行器使用特定类型的 Azure 计算机,而该计算机在设计上不允许这样做:(

© www.soinside.com 2019 - 2024. All rights reserved.