Skip to content

postgres:11.10 docker image APT repository is removed #84

@logstar

Description

@logstar

@atlas4213 encountered the following error when building the db docker image from db/db.Dockerfile. This error can be reproduced by running docker-compose build --no-cache db.

Step 2/10 : RUN apt-get update -qq   && apt-get install -y --no-install-recommends     ca-certificates     curl   && rm -rf /var/lib/apt/lists/*
 ---> Running in ...
W: The repository 'http://apt.postgresql.org/pub/repos/apt stretch-pgdg Release' does not have a Release file.
E: Failed to fetch http://apt.postgresql.org/pub/repos/apt/dists/stretch-pgdg/main/binary-amd64/Packages  404  Not Found [IP: 72.32.157.246 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

The error is caused by the recent removal of Debian stretch (9) from http://apt.postgresql.org/, according to https://wiki.postgresql.org/wiki/Apt.

Note that this error does not affect remote DEV/QA/PRD sites, because they use Amazon Relational Database Service (RDS) rather than the db docker image to host database servers.

To temporarily fix this error:

  • If db docker image has been built, there is no need to change anything. The image cache should still work when building new db docker images.
  • If db docker image has not been built, change the first line of db/db.Dockerfile,
    FROM postgres:11.10
    , to FROM postgres:12.

The permanent fix of this error is open for discussions. Following are some potential ones:

  • Update PostgreSQL version from 11 to 12 in db/db.Dockerfile and db/build_tools/build_db.Dockerfile. This will require checking PostgreSQL changes from version 11 to 12, to see whether it would be incompatible with any part of the OpenPedCan-api.
  • Keep using PostgreSQL version 11, and remove the curl installation part in db/db.Dockerfile. This will require extracting the database downloading procedure,
    if [[ "${DB_LOCATION}" == "local" ]]; then
    cd "${BUILD_OUTPUT_DIR_PATH}"
    if [[ ! -f "sha256sum.txt" ]]; then
    echo "Error: local file ${PWD}/sha256sum.txt does not exist." 1>&2
    exit 1
    fi
    else
    if [[ "${DB_LOCATION}" != "aws_s3" ]]; then
    echo "Invalid DB_LOCATION ${DB_LOCATION}" 1>&2
    exit 1
    fi
    fi
    db_dump_fn="open_ped_can_db_postgres_pg_dump.sql.gz"
    API_DB_BASE_URL="https://s3.amazonaws.com/d3b-openaccess-us-east-1-prd-pbta/open-targets/api/v0.4.0-beta"
    if [[ "${DB_LOCATION}" == "aws_s3" ]]; then \
    mkdir -p "$DB_LOAD_TOOLS_DIR_PATH"
    cd "$DB_LOAD_TOOLS_DIR_PATH"
    curl "${API_DB_BASE_URL}/sha256sum.txt" -o "sha256sum.txt"
    curl "${API_DB_BASE_URL}/${db_dump_fn}" -o "${db_dump_fn}"
    fi
    , to a standalone script. Also, PostgreSQL version 11 only will be supported to November 2023, so the PostgreSQL version needs to be updated before then.

cc @sangeetashukla @kelseykeith @ewafula @chinwallaa

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions