abiosoft / colima

Container runtimes on macOS (and Linux) with minimal setup
MIT License
17.73k stars 364 forks source link

Failed to create the Postgres docker image. ( error: could not create file) #1035

Open ivarledgis opened 1 month ago

ivarledgis commented 1 month ago

Description

Hello, I am using this code to create the container for the postgres but it's failing.

version: "3.1"

services:
  postgres:
    image: postgres:11.14
    container_name: elementspostgres
    ports:
      - "5432:5432"
    env_file:
      - ./.env
    volumes:
      - ./db/data:/var/lib/postgresql/data
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
  At first, I was getting permission denied issues. Solve it after following this https://github.com/abiosoft/colima/issues/83#issuecomment-1339269542 
  After that issue was solved, I started getting 
      2024-05-27 08:21:10.743 UTC [40] FATAL:  could not create file "base/13066/2618": File exists

Version

colima version 0.6.9 git commit: c3a31ed05f5fab8b2cdbae835198e8fb1717fd0f

runtime: docker arch: aarch64 client: v26.1.3 server: v26.1.1

Operating System

Output of colima status

INFO[0000] Colima is running using QEMU
INFO[0000] arch: aarch64
INFO[0000] runtime: docker
INFO[0000] mountType: 9p
INFO[0000] socket: unix:///Users/<USERNAME>/.colima/default/docker.sock

Reproduction Steps

1. 2. 3.

Expected behaviour

The image should be created without any error.

Additional context

Complete log during the creation of Postgres image.

[+] Running 2/0
 ✔ Network elements-node_default  Created                                                                                        0.0s
 ✔ Container elementspostgres     Created                                                                                        0.0s
Attaching to elementspostgres
elementspostgres  | The files belonging to this database system will be owned by user "postgres".
elementspostgres  | This user must also own the server process.
elementspostgres  |
elementspostgres  | The database cluster will be initialized with locale "en_US.utf8".
elementspostgres  | The default database encoding has accordingly been set to "UTF8".
elementspostgres  | The default text search configuration will be set to "english".
elementspostgres  |
elementspostgres  | Data page checksums are disabled.
elementspostgres  |
elementspostgres  | fixing permissions on existing directory /var/lib/postgresql/data ... ok
elementspostgres  | creating subdirectories ... ok
elementspostgres  | selecting default max_connections ... 100
elementspostgres  | selecting default shared_buffers ... 128MB
elementspostgres  | selecting default timezone ... Etc/UTC
elementspostgres  | selecting dynamic shared memory implementation ... posix
elementspostgres  | creating configuration files ... ok
elementspostgres  | running bootstrap script ... ok
elementspostgres  | 2024-05-27 08:21:10.743 UTC [40] FATAL:  could not create file "base/13066/2618": File exists
elementspostgres  | 2024-05-27 08:21:10.743 UTC [40] STATEMENT:  CREATE DATABASE template0 IS_TEMPLATE = true ALLOW_CONNECTIONS = false;
elementspostgres  |
elementspostgres  | child process exited with exit code 1
elementspostgres  | initdb: removing contents of data directory "/var/lib/postgresql/data"
elementspostgres  | performing post-bootstrap initialization ...
elementspostgres exited with code 1