Проблема с docker-compose
У меня есть проект REST-API на Golang, который использует Postgres, хочу этот проект поместить в контейнер, но проблема такая: у меня всё запускается отлично, и контейнер с postgres, и с самим приложением, но не на том хосте или порте (как я думаю) на котором нужно, потому что Postman при запросе выдает ошибку Error: getaddrinfo ENOTFOUND http (или ECONNREFUSED было), данные приложение берет из конфига
"http_server": {
"address": "localhost:8080",
"timeout": "5s",
"idle_timeout": "60s"
},
"storage": {
"url": "postgres://postgres:admin@postgres:5432/arithmetic_operations?sslmode=disable"
},
docker-compose вот такой:
version: '3.8'
services:
postgres:
container_name: postgresql_database
image: postgres
restart: always
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
POSTGRES_DB: arithmetic_operations
volumes:
- data:/var/lib/postgresql/data
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s
timeout: 5s
retries: 5
app:
container_name: go_app
image: app:latest
restart: unless-stopped
ports:
- "8080:8080"
build:
dockerfile: Dockerfile
depends_on:
- postgres
volumes:
data:
а Dockerfile такой
# Stage 1: Build the Go application
FROM golang:1.21.0
# Create a working directory
WORKDIR /app
# Copy go.mod and go.sum files
COPY go.mod go.sum ./
# Download all dependencies
RUN go mod download
# Copy the source code
COPY . .
# Copy the config.json file
COPY config.json /app/config.json
# Set environment variable for port
ENV PORT=8080
# Expose port 8080
EXPOSE $PORT
# Build the application
RUN CGO_ENABLED=0 go build -o cmd/main cmd/main.go
# Start the application
CMD ["cmd/main"]
и, кстати docker выдает один warning: ! app: published ports are discarded when using host network mode