1

I'm trying to set up a simple database system using a PostgreSQL Docker container and an Adminer container as a backend. Note this is all running on a RaspberryPi 4.

docker-compose.yml:

services:
    postgres:
        image: postgres
        restart: on-failure
        ports:
            - 5432:5432
        env_file:
            - ./.auth_file
        volumes:
            - db:/var/lib/postgresql/data

    adminer:
        image: adminer
        restart: on-failure
        ports:
            - 8070:8080
        env_file:
            - ./.auth_file
        depends_on:
            - postgres
volumes:
    db:

I then run it using docker-compose up:

postgres_1  | 
postgres_1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
postgres_1  | 
postgres_1  | 2021-04-01 13:25:25.919 UTC [1] LOG:  starting PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1) on arm-unknown-linux-gnueabihf, compiled by gcc (Debian 8.3.0-6) 8.3.0, 32-bit
postgres_1  | 2021-04-01 13:25:25.919 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgres_1  | 2021-04-01 13:25:25.919 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgres_1  | 2021-04-01 13:25:26.028 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2021-04-01 13:25:26.090 UTC [27] LOG:  database system was shut down at 2021-04-01 13:20:41 UTC
postgres_1  | 2021-04-01 13:25:26.116 UTC [1] LOG:  database system is ready to accept connections
adminer_1   | [Sun Jun 14 00:31:20 2071] PHP 7.4.16 Development Server (http://[::]:8080) started
adminer_1   | [Sun Jun 14 00:30:16 2071] [::ffff:192.168.16.1]:50886 Accepted

The last line shows that I tried to access localhost:8070 in the Browser right on the Pi. The page just loads forever and Adminer never returns the page.

Could this have to do with some firewall issues?

Thanks for any help!

Alex
  • 95
  • 1
  • 10

1 Answers1

0

Found the solution. This has to do with the Docker Container being unable to fetch the current time from the host, due to some version issues surrounding Docker, Alpine (the base image for Adminer) and libseccomp. This is also evident by the fact that Adminer shows entirely different timestamps than the Postgres-Container in my original post.

The full explanation can be found here: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.13.0#time64_requirements

After following the steps linked above, the docker-compose.yml should look something like this:

adminer:
        image: adminer
        ...
        security_opt:
            - seccomp=config/compose/default.json  # required to avoid clock_gettime() errors

Replace config/compose/default.json with the relative path to the modified default.json.

Alex
  • 95
  • 1
  • 10