Spent the last hour or two trying to find an answer to this one. Search has turned up nothing. It seems to be something very specific to my host. Any help trouble shooting would be very appricated.
Host is running CentOS 7.
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
$ docker-compose --version
docker-compose version 1.22.0, build f46880f
I’ve turned off selinux.
I’ve tried a normal bind mount.
I’ve tried a normal bind mount prechowned to 999:999, and just left as root:root.
I’ve tried turning off firewalld. This just broke because docker couldn’t set the firewall stuff.
Running the container without using compose works. docker run --rm --name pgsqltest -v $PWD/data/database/pgsql:/var/lib/postgresql/data -e POSTGRES_PASSWORD=password -p 5432:5432 postgres:10
.
The compose file works perfectly when run on my Ubuntu 18.04 laptop.
Here is what I get when I run the compose file on my CentOS 7 host (as well as the actual file):
[root@centos7host appname]# docker-compose -f docker-compose.test.yml up
Creating network "appname_default" with the default driver
Creating volume "appname_appname_pg_data" with default driver
Creating appname_postgres ... done
Attaching to appname_postgres
appname_postgres exited with code 1
[root@centos7host appname]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae2dae8a6d4d postgres:10 "docker-entrypoint.s…" About a minute ago Restarting (1) 18 seconds ago appname_postgres
[root@centos7host appname]# cat docker-compose.test.yml
version: "3.2"
volumes:
appname_pg_data:
secrets:
dbpass:
file: ./secrets/dbpass
services:
appname_postgres:
image: postgres:10
container_name: appname_postgres
restart: always
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/dbpass
POSTGRES_USER: appname
PGDATA: /var/lib/postgresql/data/appname
POSTGRES_DB: appname
volumes:
- type: volume
source: appname_pg_data
target: /var/lib/postgresql/data
- type: bind
source: ./data/share
target: /srv
secrets:
- dbpass
I received the same error when using a volume like:
- type: bind
source: ./data/database/pgsql
target: /var/lib/postgresql/data
instead of the appname_pg_data
volume in the output above.
Any ideas?