callahantiff / PheKnowLator

PheKnowLator: Heterogeneous Biomedical Knowledge Graphs and Benchmarks Constructed Under Alternative Semantic Models
https://github.com/callahantiff/PheKnowLator/wiki
Apache License 2.0
157 stars 29 forks source link

GitHub Actions -- Docker build-push-action failing #137

Open callahantiff opened 1 year ago

callahantiff commented 1 year ago

Problem

@bill-baumgartner -- hoping to see if you might see something I am missing. The Docker build-push-action part of the GitHub Actions QC run is failing with the following error message:

Error: buildx failed with: ERROR: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y     apt-transport-https     software-properties-common     unzip     curl" did not complete successfully: exit code: 100

You can see the logs for the failed builds here:

Details

I have updated the GitHub Action script to make sure that we are using the latest version of everything and have ensured that we are still following the suggested workflow, which we are. In case you are curious, the latest requirements are listed here: https://github.com/docker/build-push-action.

Associated Scripts/Files

bill-baumgartner commented 1 year ago

I was able to reproduce the error with a local Docker build. It appears that Debian 8 has reached end-of-life, and that's causing an issue summarized here. It looks like python 3.6.2 has also reach end of life. Can we move to a new version of python, which will also move us to a new version of Debian? FWIW - the container builds when using FROM python:3.11.2, however I don't know if that will have downstream ramifications when building a KG.

callahantiff commented 1 year ago

Thanks so much @bill-baumgartner. I really appreciate your help on this and for discussing this further with me today. I am recording our plan here:

Update:
There are good examples of what we want in this post. I think in theory, all we need to do is modify the top of our file (Dockerfile) to include the following:

FROM debian:bullseye
RUN apt-get update -y \
    && apt-get upgrade -y \
    && apt-get -y install build-essential \
        zlib1g-dev \
        libncurses5-dev \
        libgdbm-dev \
        libnss3-dev \
        libssl-dev \
        libreadline-dev \
        libffi-dev \
        libsqlite3-dev \
        libbz2-dev \
        wget \
    && export DEBIAN_FRONTEND=noninteractive \
    && apt-get purge -y imagemagick imagemagick-6-common
# install python 3.6.2
RUN wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz \
    && tar xvf Python-3.6.2.tar.xz \
    && rm Python-3.6.2.tar.xz \
    && cd Python-3.6.2 \
    && ./configure \
    && make altinstall \
    && cd / \
    && rm -rf Python-3.6.2
....
callahantiff commented 1 year ago

@bill-baumgartner -- Just a quick update. I think that I have addressed the initial error caused by Python 3.6.2 (see updated code snippet above). That said, it does seem to generate a lot of warnings. Not sure it is a problem or not. Suppose we will know once we try to launch a new build.

The branch I created to work on this is called: docker-dev

I am now getting an error when running trying to install Java (see error log here). Maybe we can take a look at this together when we meet next week?

buildx failed with: ERROR: failed to solve: process "/bin/sh -c wget -O- https://apt.corretto.aws/corretto.key | apt-key add - &&     add-apt-repository 'deb https://apt.corretto.aws stable main' &&     apt-get update &&     apt-get install -y java-1.8.0-amazon-corretto-jdk" did not complete successfully: exit code: 127