При попытке получить доступ к службам php из службы golang я получаю сообщение об ошибке «Get \"http://accounting:9000/\». «: прочитайте tcp 172.22.0.5:43016->172.22.0.2:9000: прочитайте: сброс соединения по одноранговому узлу»
Я также хочу, чтобы к службе php был доступен только внутренний доступ, поэтому этого не должно быть быть открытым для внешнего мира.
docker-compose.yaml:
Код: Выделить всё
version: '3.8'
services:
apigateway:
build:
context: .
dockerfile: .docker/go/apigateway/Dockerfile
depends_on:
- postgres
networks:
- app-network
- internal-network
volumes:
- ./apigateway:/apigateway
accounting:
build:
context: .
dockerfile: .docker/php/Dockerfile
networks:
- internal-network
volumes:
- ./accounting:/var/www/html
depends_on:
- apigateway
nginx:
image: nginx:1.26.0
ports:
- "8780:80"
volumes:
- ./.docker/nginx/conf.d:/etc/nginx/conf.d
depends_on:
- apigateway
networks:
- app-network
- internal-network
networks:
app-network:
internal-network:
internal: true
Код: Выделить всё
FROM php:8.3-fpm
RUN apt-get update -y
RUN apt-get -y install gcc make autoconf libc-dev pkg-config libzip-dev
WORKDIR /var/www/html
COPY ./accounting .
EXPOSE 9000
CMD ["php-fpm", "-F"]
Код: Выделить всё
router.GET("/foo", func(c *gin.Context) {
url := "http://accounting:9000/"
resp, err := http.Get(url)
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
fmt.Println(resp.StatusCode)
})
Подробнее здесь: https://stackoverflow.com/questions/784 ... hp-service