Not sure this is the right section, but I’ve got a few containers that reference PostgreSQL containers & Redis containers and I appear to be having some trouble resolving hostnames in those containers. Well, sort of…
I exec’d into the paperless-ngx container, installed dig and was able to obtain the correct ip address for the database container. However, attempting to establish a connection via psql using the hostname doesn’t succeed while attempting to establish a connection via IP address does succeed.
EDIT: Forgot to mention that the redis & postgresql containers are brought up successfully and inspection of the logs indicates that they appear to be ready to accept connections. Also, I’ve verified that all containers are on the same network via podman network inspect.
Not sure where the problem lies in my configuration, but here’s what I have for systemd unit files (without overrides that provide variable values and network subnet).
/etc/containers/systemd/paperless-ngx.network
[Network]
NetworkName=%N
/etc/containers/systemd/paperless-ngx-db.container
[Unit]
Description=Container service for Paperless-ngx Database
Requires=paperless-ngx-network.service
After=paperless-ngx-network.service
[Container]
ContainerName=%p
Image=docker.io/library/postgres:16
Volume=${CONTAINER_PATH}/db:/var/lib/postgresql/data:Z
Network=paperless-ngx-network
[Service]
ExecCondition=/usr/bin/test -d "${CONTAINER_PATH}/db"
ExecStartPre=/usr/bin/chown -R 999 ${CONTAINER_PATH}/db
Restart=on-failure
/etc/containers/systemd/paperless-ngx-broker.container
[Unit]
Description=Container service for Paperless-ngx Broker
Requires=paperless-ngx-network.service
After=paperless-ngx-network.service
[Container]
ContainerName=%p
Image=docker.io/library/redis:7
Volume=${CONTAINER_PATH}/redis:/data:Z
Network=paperless-ngx-network
[Service]
ExecCondition=/usr/bin/test -d "${CONTAINER_PATH}/redis"
Restart=on-failure
/etc/containers/systemd/paperless-ngx.container
[Unit]
Description=Container service for Paperless-ngx
Requires=paperless-ngx-network.service
Requires=paperless-ngx-db.service paperless-ngx-broker.service
After=paperless-ngx-network.service
After=paperless-ngx-db.service paperless-ngx-broker.service
[Container]
ContainerName=%p
Image=ghcr.io/paperless-ngx/paperless-ngx:latest
Environment=PAPERLESS_DBHOST=paperless-ngx-db
Environment=PAPERLESS_REDIS=redis://paperless-ngx-broker:6379
Volume=${CONTAINER_PATH}/data:/usr/src/paperless/data:Z
Volume=${CONTAINER_PATH}/media:/usr/src/paperless/media:Z
Volume=${CONTAINER_PATH}/export:/usr/src/paperless/export:Z
Volume=${CONTAINER_PATH}/consume:/usr/src/paperless/consume:Z
PublishPort=${WEB_PORT}:8000
Network=paperless-ngx-network
[Service]
ExecCondition=/usr/bin/test -d "${CONTAINER_PATH}/data"
ExecCondition=/usr/bin/test -d "${CONTAINER_PATH}/media"
ExecCondition=/usr/bin/test -d "${CONTAINER_PATH}/export"
ExecCondition=/usr/bin/test -d "${CONTAINER_PATH}/consume"
Restart=on-failure
[Install]
WantedBy=default.target