Я только начинаю работать с докером и не могу подключить API к моей базе данных.Я получаю connection refused
.
Я получаю это в журналах, что, по-видимому, означает, что переменные окружения не передаются: The files belonging to this database system will be owned by user "postgres".
Кроме того, docker exec -ti [container_id] psql -U postgres
работает, однако docker exec -ti [container_id] psql -U docker
-> role "docker" does not exist
Я также пытался COPY
вставить файл init.sql в базу данных Dockerfile
, но, похоже, он не дал никакого эффекта.
Этомой docker-compose.yaml
.Есть что-то, что выделяется как неправильное?
version: '2'
services:
db:
build: ./db
volumes:
- ./db/pgdata:/pgdata
ports:
- "5432:5432"
environment:
- POSTGRES_USER=docker
- POSTGRES_PASSWORD=docker
- POSTGRES_DB=xx
- PGDATA=/pgdata
api:
build:
context: .
args:
app_env: ${APP_ENV}
volumes:
- .:/go/src/github.com/x/xx
ports:
- "5000:8080"
links:
- db
Это мой Dockerfile
FROM golang
ARG app_env
ENV APP_ENV $app_env
# Copy the local package files to the container's workspace
COPY . /go/src/github.com/x/xx
WORKDIR /go/src/github.com/x/xx
# added vendor services will need to be included here
RUN go build
# if dev setting will use pilu/fresh for code reloading via docker-compose volume sharing with local machine
# if production setting will build binary
CMD if [ ${APP_ENV} = production ]; \
then \
api; \
else \
go get github.com/pilu/fresh && \
fresh -c recompile.conf; \
fi
# Document that the container uses port 8080
EXPOSE 8080
А это мой Dockerfile в разделе ./db
FROM postgres:latest
EXPOSE 5432