invoiceninja / dockerfiles

Docker files for Invoice Ninja
https://hub.docker.com/r/invoiceninja/invoiceninja
GNU General Public License v2.0
399 stars 263 forks source link

Problem with MySQL Docker: base image of `mysql:8` is now Oracle based #503

Open R0Wi opened 1 year ago

R0Wi commented 1 year ago

Setup information docker-compose build (uncommented these lines)

Describe the bug It seems like the MySQL 8 image cannot be built. Running docker-compose build gives me:

app uses an image, skipping
server uses an image, skipping
Building db
Step 1/5 : FROM mysql:8
 ---> 2fe463762680
Step 2/5 : ENV force_color_prompt yes
 ---> Using cache
 ---> 25e1a6d53b51
Step 3/5 : RUN apt-get update;
 ---> Running in e5d052f6e6ee
Get:1 http://deb.debian.org/debian buster InRelease [122 kB]
Get:2 http://security.debian.org/debian-security buster/updates InRelease [34.8 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [56.6 kB]
Get:4 http://repo.mysql.com/apt/debian buster InRelease [22.1 kB]
Get:5 http://security.debian.org/debian-security buster/updates/main amd64 Packages [472 kB]
Get:6 http://deb.debian.org/debian buster/main amd64 Packages [7909 kB]
Get:7 http://deb.debian.org/debian buster-updates/main amd64 Packages [8788 B]
Err:4 http://repo.mysql.com/apt/debian buster InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
Reading package lists...
W: GPG error: http://repo.mysql.com/apt/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
E: The repository 'http://repo.mysql.com/apt/debian buster InRelease' is not signed.
ERROR: Service 'db' failed to build: The command '/bin/sh -c apt-get update;' returned a non-zero code: 100

To reproduce Steps to reproduce the behavior:

  1. See above

Expected behavior Image should be buildable for folks wanting to use the backup functionallity.

Docker/Kubernetes/Helm:

Client: Docker Engine - Community Version: 20.10.12 API version: 1.41 Go version: go1.16.12 Git commit: e91ed57 Built: Mon Dec 13 11:45:33 2021 OS/Arch: linux/amd64 Context: default Experimental: true

Server: Docker Engine - Community Engine: Version: 20.10.12 API version: 1.41 (minimum version 1.12) Go version: go1.16.12 Git commit: 459d0df Built: Mon Dec 13 11:43:42 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.12 GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d runc: Version: 1.0.2 GitCommit: v1.0.2-0-g52b36a2 docker-init: Version: 0.19.0 GitCommit: de40ad0


**Possible fix/workaround:**

Adding this line to the [`config/mysql/Dockerfile`](https://github.com/invoiceninja/dockerfiles/blob/master/config/mysql/Dockerfile) before running `apt-get update`:

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29



**Additional info:**
https://askubuntu.com/questions/1389928/mysql-an-error-occurred-during-the-signature-verification
Xenion1987 commented 1 year ago

I'm wondering that apt-get works at all. mysql:8 defaults to oraclelinux:8-slim

❯ docker run --rm -it mysql:8 cat /etc/os-release
Unable to find image 'mysql:8' locally
8: Pulling from library/mysql
Digest: sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577
Status: Downloaded newer image for mysql:8
NAME="Oracle Linux Server"
VERSION="8.7"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.7"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.7"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:7:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.7
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.7
R0Wi commented 1 year ago

Think you're right, could be that I was using an old cached local image. Since https://github.com/docker-library/mysql/pull/867 the default for mysql:8 should be Oracle based. Anyways I think that this line needs to be changed to mysql:8-debian, otherwise the apt-get commands would fail which come afterwards.

After clearing the local mysql image, I now get

docker build --no-cache -t tmp .
[+] Building 75.4s (6/7)
 => [internal] load build definition from Dockerfile                                                               0.1s
 => => transferring dockerfile: 334B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.1s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/mysql:8                                                         3.2s
 => [auth] library/mysql:pull token for registry-1.docker.io                                                       0.0s
 => [1/3] FROM docker.io/library/mysql:8@sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577  71.2s
 => => resolve docker.io/library/mysql:8@sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577   0.0s
 => => sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577 549B / 549B                         0.0s
 => => sha256:328ba678bf27575937f8b9dfbf5b5f39b21941af068f8e5960de8131e289da85 44.56MB / 44.56MB                  52.2s
 => => sha256:dd7054d6d0c7c57672cd9e48e8a92eda15a4f0ae24dc78413fdce3fce3064a77 982.82kB / 982.82kB                 1.4s
 => => sha256:b45a7c3e6fb15526e8bf62ebb940cd460617e36f46155b8514fd9c9388231817 2.62kB / 2.62kB                     0.0s
 => => sha256:8189e588b0e8fcc95b0d764d6f7bdb55b5b41e9249157177d73781058f603ca9 7.46kB / 7.46kB                     0.0s
 => => sha256:f3f5ff008d73bef1d4c8e1a4c73a7efc7697e8087a950065fb369c83a03df08d 886B / 886B                         0.6s
 => => sha256:70b5d4e8750e78990227fa3f3df12b6ccdf3b2486b4248677b7959dd95c0e77b 4.61MB / 4.61MB                     5.1s
 => => sha256:cdc4a7b43bdd822158ae54cac5da309097088de0253879cbb07e31829d8f4561 2.63kB / 2.63kB                     1.6s
 => => sha256:a0608f8959e036b9e5f55227da2fac404f45e153119063fd042cba4cdcdc9e6c 335B / 335B                         1.7s
 => => sha256:5823e721608fd3d82b87e136e4cb898d8ffbbf25cedb6dcd2a22c38fe25e038d 58.59MB / 58.59MB                  66.3s
 => => sha256:a564ada930a970424e6b25a29d9d4f706d15f9e6401c21bcef3e841853f7527e 315B / 315B                         5.3s
 => => sha256:539565d00e89aa08d29023b1284734fea67d9ff99366188c4ff29d0da6d59187 56.56MB / 56.56MB                  68.4s
 => => extracting sha256:328ba678bf27575937f8b9dfbf5b5f39b21941af068f8e5960de8131e289da85                          0.6s
 => => sha256:a11a06843fd5b834a3c6eb03387de3fcac84eb24f940ed1271579d2d76f137e6 5.39kB / 5.39kB                    52.7s
 => => sha256:92f6d4aa041d96e3ebda9dfafe42be4f7eed49456ba2c492adeffe85f10aad06 121B / 121B                        52.9s
 => => extracting sha256:f3f5ff008d73bef1d4c8e1a4c73a7efc7697e8087a950065fb369c83a03df08d                          0.0s
 => => extracting sha256:dd7054d6d0c7c57672cd9e48e8a92eda15a4f0ae24dc78413fdce3fce3064a77                          0.0s
 => => extracting sha256:70b5d4e8750e78990227fa3f3df12b6ccdf3b2486b4248677b7959dd95c0e77b                          0.1s
 => => extracting sha256:cdc4a7b43bdd822158ae54cac5da309097088de0253879cbb07e31829d8f4561                          0.0s
 => => extracting sha256:a0608f8959e036b9e5f55227da2fac404f45e153119063fd042cba4cdcdc9e6c                          0.0s
 => => extracting sha256:5823e721608fd3d82b87e136e4cb898d8ffbbf25cedb6dcd2a22c38fe25e038d                          0.7s
 => => extracting sha256:a564ada930a970424e6b25a29d9d4f706d15f9e6401c21bcef3e841853f7527e                          0.0s
 => => extracting sha256:539565d00e89aa08d29023b1284734fea67d9ff99366188c4ff29d0da6d59187                          1.6s
 => => extracting sha256:a11a06843fd5b834a3c6eb03387de3fcac84eb24f940ed1271579d2d76f137e6                          0.0s
 => => extracting sha256:92f6d4aa041d96e3ebda9dfafe42be4f7eed49456ba2c492adeffe85f10aad06                          0.0s
 => ERROR [2/3] RUN apt-get update;                                                                                0.8s
------
 > [2/3] RUN apt-get update;:
#6 0.372 /bin/sh: apt-get: command not found

After changing the initial line to FROM mysql:8-debian, everything works fine as expected:

 docker build --no-cache -t tmp .
[+] Building 131.7s (7/7) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 341B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/mysql:8-debian                                                  1.7s
 => [1/3] FROM docker.io/library/mysql:8-debian@sha256:4afd713ff95370962e757fc4f844f0d058815bc46cd299af21ad75b13  81.9s
 => => resolve docker.io/library/mysql:8-debian@sha256:4afd713ff95370962e757fc4f844f0d058815bc46cd299af21ad75b139  0.0s
 => => sha256:c2c3e5b6ace1821d80964d3f282745eed5bad22916ce83ef175a621385970ef1 7.13kB / 7.13kB                     0.0s
 => => sha256:26c5c85e47da3022f1bdb9a112103646c5c29517d757e95426f16e4bd9533405 31.42MB / 31.42MB                  25.2s
 => => sha256:4a04d5366306e8a589995f9f73ab93e6891f61c650a23925fb5b7390b6064595 1.73kB / 1.73kB                     0.5s
 => => sha256:4afd713ff95370962e757fc4f844f0d058815bc46cd299af21ad75b139cf85ca 320B / 320B                         0.0s
 => => sha256:873c1ad5d797e4dc738725637674e35924b996b5277fd56f6a8cc21f97baa492 2.83kB / 2.83kB                     0.0s
 => => sha256:2ba5474d63b96ac334caf465b6aa1a5de64b2013b2d04a1bfebfafff8f91fc38 4.42MB / 4.42MB                     2.0s
 => => sha256:5c021e7c8f4a7a4ce5520958fdb931906c4e230b830ed9b727f6cfdca9fb5869 1.47MB / 1.47MB                     2.6s
 => => sha256:8d3a9a62a81ba7372c6da71311f49a2bbdf341b2df76733730983af435b5103e 149B / 149B                         2.2s
 => => sha256:f02df4487ae5565f727156b1002cf5d23384f0b11f48e41459c11560fd112a5c 12.66MB / 12.66MB                  13.8s
 => => sha256:3f9945ed239183eb77212dda7cc43cbcd8e45243e6170f8f35c607da06f841f7 2.55kB / 2.55kB                     2.9s
 => => sha256:607a3474cf9a698879bb741d95769e0075a997044ecdb48ee6ac12174a5994b8 255B / 255B                         3.0s
 => => sha256:f69daa87368509add640be8a19de4fc8547f1678d1b7fae1d621a2607284258b 129.74MB / 129.74MB                79.0s
 => => sha256:8d9c0ae553167197730967bc96f9a9c7db7f447623281c5c5d8f8b48416ca363 842B / 842B                        14.0s
 => => sha256:13794956e0b8fcfcd5af1b5df304f802b59e2b5e8d4bf2f18bf234937308b4b5 5.39kB / 5.39kB                    14.5s
 => => sha256:514db4040252999ad0d10116304fa48ddda4eb6c6c9867fb3bc51e839faa135b 120B / 120B                        14.7s
 => => extracting sha256:26c5c85e47da3022f1bdb9a112103646c5c29517d757e95426f16e4bd9533405                          0.5s
 => => extracting sha256:4a04d5366306e8a589995f9f73ab93e6891f61c650a23925fb5b7390b6064595                          0.0s
 => => extracting sha256:2ba5474d63b96ac334caf465b6aa1a5de64b2013b2d04a1bfebfafff8f91fc38                          0.1s
 => => extracting sha256:5c021e7c8f4a7a4ce5520958fdb931906c4e230b830ed9b727f6cfdca9fb5869                          0.0s
 => => extracting sha256:8d3a9a62a81ba7372c6da71311f49a2bbdf341b2df76733730983af435b5103e                          0.0s
 => => extracting sha256:f02df4487ae5565f727156b1002cf5d23384f0b11f48e41459c11560fd112a5c                          0.3s
 => => extracting sha256:3f9945ed239183eb77212dda7cc43cbcd8e45243e6170f8f35c607da06f841f7                          0.0s
 => => extracting sha256:607a3474cf9a698879bb741d95769e0075a997044ecdb48ee6ac12174a5994b8                          0.0s
 => => extracting sha256:f69daa87368509add640be8a19de4fc8547f1678d1b7fae1d621a2607284258b                          1.7s
 => => extracting sha256:8d9c0ae553167197730967bc96f9a9c7db7f447623281c5c5d8f8b48416ca363                          0.0s
 => => extracting sha256:13794956e0b8fcfcd5af1b5df304f802b59e2b5e8d4bf2f18bf234937308b4b5                          0.0s
 => => extracting sha256:514db4040252999ad0d10116304fa48ddda4eb6c6c9867fb3bc51e839faa135b                          0.0s
 => [2/3] RUN apt-get update;                                                                                      7.6s
 => [3/3] RUN apt-get install -y cron;                                                                            39.9s
 => exporting to image                                                                                             0.4s
 => => exporting layers                                                                                            0.3s
 => => writing image sha256:f956853da0deb35d74b8e9ee9572367f1a2ac72b98a3fa77c933aeb124b27868                       0.0s
 => => naming to docker.io/library/tmp