apache Github操作在无法连接到localhost的Web服务器容器中运行作业

7cwmlq89  于 2023-02-16  发布在  Apache
关注(0)|答案(1)|浏览(163)

我有一个container,当我在笔记本电脑上运行container,登录到它的终端并向www.example.com发出curl请求时,它会启动一个web服务127.0.0.1器。当我在GitHub操作工作流中尝试相同的操作时,我得到:“curl:(7)无法连接到127.0.0.1端口80:连接被拒绝”。我试过添加端口(我认为这不是必须的),但它不会工作。我实际上认为apache没有运行的原因,但我不明白为什么,因为它确实在本地工作。
请参见下面的最小工作流文件:

name: Auto tests

on:
  push:
    branches: [ "master", "githubActions" ]

jobs:
  build:
    runs-on: ubuntu-latest
    container:
      image: php:7.4.33-apache-bullseye
    steps:
      - name: GET localhost
        run: curl 127.0.0.1

我希望我得到这样的东西:

# curl localhost
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
<hr>
<address>Apache/2.4.54 (Debian) Server at localhost Port 80</address>
</body></html>

但我得到了“ curl :(7)连接本地主机端口80失败:连接被拒绝”。

w46czmvw

w46czmvw1#

steps在容器内运行,而不是在容器旁边运行。请参阅在容器中运行作业。这就是为什么没有服务器在容器中运行,curl失败的原因。
您要查找的是jobs.<job_id>.services。有关详细信息,请参阅About service containers
对于services,工作流示例如下:

name: php_container

on:
  workflow_dispatch:

jobs:
  ci:
    runs-on: ubuntu-latest
    services:
      php:
        image: php:7.4.33-apache-bullseye
        ports:
        - 80:80
    steps:
    - name: Test
      run: curl localhost

相关问题