I am trying to execute a shell script to call the Grafana API on startup, specifically:
curl -X POST -H "Content-Type: application/json" -d '{"name":"Algo Quant"}' http://admin:admin@grafana:3000/api/orgs
However when I do this I am getting the following error: curl: (7) Failed to connect to grafana port 3000: Connection refused
My compose file:
version: '3.7'
services:
grafana-bootstrap-pre:
build:
context: $PWD
dockerfile: .hack/build/docker/pre/Dockerfile
env_file:
- $PWD/config/__envrc.d/grafana-bootstrap-pre.envrcd
volumes:
- $PWD/config/_ops_monitoring_grafana/provisioning.initial/:/etc/grafana/provisioning/provisioning.initial/
- $PWD/config/_ops_monitoring_grafana/provisioning/current/:/etc/grafana/provisioning/current/
grafana:
image: grafana/grafana:9.2.3
ports:
- 3000:3000
restart: unless-stopped
volumes:
- _volume__ops_monitoring_grafana:/var/lib/grafana
- $PWD/config/plugins/:/var/lib/grafana/plugins/
- $PWD/config/_ops_monitoring_grafana/provisioning/current/:/etc/grafana/provisioning/
#- $PWD/config/_ops_monitoring_grafana/grafana.ini:/etc/grafana/grafana.ini
depends_on:
- "grafana-bootstrap-pre"
grafana-bootstrap-post:
build:
context: $PWD
dockerfile: .hack/build/docker/post/Dockerfile
env_file:
- $PWD/config/__envrc.d/grafana-bootstrap-post.envrcd
volumes:
- $PWD/config/_ops_monitoring_grafana/provisioning.default/:/etc/grafana/provisioning/provisioning.default/
- $PWD/config/_ops_monitoring_grafana/provisioning/current/:/etc/grafana/provisioning/current/
depends_on:
- "grafana"
volumes:
_volume__ops_monitoring_grafana: {}
networks:
default:
external:
name: services-network
My dockerfile for the offending container (post):
FROM ubuntu:20.04
COPY config/scripts/bootstrap.sh .
RUN apt-get update
RUN apt-get -y install curl
ENTRYPOINT ["/bin/bash","./bootstrap.sh", "--run"]
Which calls the following function:
curl -X POST -H "Content-Type: application/json" -d '{"name":"Algo Quant"}' http://admin:admin@grafana:3000/api/orgs
The strange thing which I cannot work out is that if i do this:
docker exec -it grafana-bootstrap-post-1 sh
Then execute the curl command here then I get the correct response.