Quickstart

Nginx

qianmoQqianmoQ· 更新于 2026-10-14· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Nginx

Creating a Nginx containerTest for a Nginx container

package nginx

import (
    "context"
    "time"

    "github.com/testcontainers/testcontainers-go"
    "github.com/testcontainers/testcontainers-go/wait"
)

type nginxContainer struct {
    testcontainers.Container
    URI string
}

func startContainer(ctx context.Context) (*nginxContainer, error) {
    ctr, err := testcontainers.Run(
        ctx, "nginx",
        testcontainers.WithExposedPorts("80/tcp"),
        testcontainers.WithWaitStrategy(wait.ForHTTP("/").WithStartupTimeout(10*time.Second)),
    )
    var nginxC *nginxContainer
    if ctr != nil {
        nginxC = &nginxContainer{Container: ctr}
    }
    if err != nil {
        return nginxC, err
    }

    endpoint, err := ctr.PortEndpoint(ctx, "80", "http")
    if err != nil {
        return nginxC, err
    }

    nginxC.URI = endpoint
    return nginxC, nil
}
package nginx

import (
    "context"
    "net/http"
    "testing"

    "github.com/stretchr/testify/require"

    "github.com/testcontainers/testcontainers-go"
)

func TestIntegrationNginxLatestReturn(t *testing.T) {
    if testing.Short() {
        t.Skip("skipping integration test")
    }

    ctx := context.Background()

    nginxC, err := startContainer(ctx)
    testcontainers.CleanupContainer(t, nginxC)
    require.NoError(t, err)

    resp, err := http.Get(nginxC.URI)
    require.NoError(t, err)
    require.Equal(t, http.StatusOK, resp.StatusCode)
}

评论

登录后参与评论

正在加载评论…