如何在启动时在kong docker容器内运行curl命令?

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

我已经设置了 kong docker 容器。它从 docker compose 文件开始:

kong:
image: "${KONG_DOCKER_TAG}" 
user: ${KONG_USER}
depends_on:
  - kong-database
  - kong-migrations
environment:
  KONG_ADMIN_ACCESS_LOG: /dev/stdout
  KONG_ADMIN_ERROR_LOG: /dev/stderr
  KONG_ADMIN_LISTEN: '0.0.0.0:8001'
  KONG_CASSANDRA_CONTACT_POINTS: ${KONG_CASSANDRA_CONTACT_POINTS}
  KONG_DATABASE: ${KONG_DATABASE}
  KONG_PG_DATABASE: ${KONG_PG_DATABASE}
  KONG_PG_HOST: ${KONG_PG_HOST}
  KONG_PROXY_LISTEN: '0.0.0.0:8000'
  KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
  KONG_NGINX_HTTP_INCLUDE: custom-nginx-kong.conf
  KONG_PG_USER: ${KONG_PG_USER}
  KONG_PROXY_ACCESS_LOG: /dev/stdout
  KONG_PROXY_ERROR_LOG: /dev/stderr
  KONG_PG_PASSWORD: ${KONG_PG_PASSWORD}
networks:
  - external-network
configs: 
  - source: kong-config
    target: /usr/local/kong/custom-nginx-kong.conf
    # Permissions -r--r--r--
    mode: 0444
healthcheck:
  test: ["CMD", "curl", "-f", "http://kong:8001"]
  interval: 5s
  timeout: 2s
  retries: 15
restart: on-failure
deploy:
  restart_policy:
    condition: on-failure
  labels:
    com.docker.lb.hosts: ${APP_URL_KONG}
    com.docker.lb.port: 8080
    com.docker.lb.network: external-network
    com.docker.lb.backend_mode: vip

我想执行curl命令,例如。通过某些脚本或使用以下命令自动创建我的容器后,立即在 kong 中添加新服务,如下所示的 post 命令。但是我如何通过上面的 docker-compose 文件设置这个自动化?请帮助我通过 docker compose 在启动时自动添加服务!!!

curl -i -X POST http://<admin-hostname>:8001/services \
  --data name=example_service \
  --data url='http://mockbin.org'

提前致谢!

docker-compose automation docker-container kong docker-command
1个回答
0
投票

使用简单的curl命令写入文本文件:容器运行后,我使用$ docker exec -it qbittorrent /bin/bash在容器内运行此curl命令:curl -o example。 txt 'https://example.com。这按预期工作: $ ls -al 显示了该示例。

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