terascope / base-docker-image

Base docker image for Node
MIT License
0 stars 0 forks source link

add platforms to each github action yml file #19

Closed sotojn closed 1 year ago

sotojn commented 1 year ago

I added platforms: linux/arm64,linux/amd64 to each part of the build steps within the build.yml and release.yml files.

This should allow compatibility with arm64 architectures.

Issue number #14

godber commented 1 year ago

On my intel mac, I am able to pull, run and inspect the amd64 image:

$ docker pull terascope/node-base:14.21.3-test
14.21.3-test: Pulling from terascope/node-base
f56be85fc22e: Already exists
8f665685b215: Already exists
e5fca6c395a6: Already exists
561cb69653d5: Already exists
4f4fb700ef54: Pull complete
19d7c22a0cb6: Pull complete
67e5e14b6b94: Pull complete
8282bdcaeec6: Pull complete
d73167f96178: Pull complete
a2b375f71447: Pull complete
8a493d45f13f: Pull complete
b835f8fdef25: Pull complete
acbdde59444e: Pull complete
Digest: sha256:c908f9d42663aba714d7712cd68982d4de19c95edb12a2e2b80b03c4ae5e1bb0
Status: Downloaded newer image for terascope/node-base:14.21.3-test
docker.io/terascope/node-base:14.21.3-test

What's Next?
  View summary of image vulnerabilities and recommendations → docker scout quickview terascope/node-base:14.21.3-test

$ docker run terascope/node-base:14.21.3-test
tini (tini version 0.19.0)
Usage: tini [OPTIONS] PROGRAM -- [ARGS] | --version

Execute a program under the supervision of a valid init process (tini)

Command line options:

  --version: Show version and exit.
  -h: Show this help message and exit.
  -s: Register as a process subreaper (requires Linux >= 3.4).
  -p SIGNAL: Trigger SIGNAL when parent dies, e.g. "-p SIGKILL".
  -v: Generate more verbose output. Repeat up to 3 times.
  -w: Print a warning when processes are getting reaped.
  -g: Send signals to the child's process group.
  -e EXIT_CODE: Remap EXIT_CODE (from 0 to 255) to 0.
  -l: Show license and exit.

Environment variables:

  TINI_SUBREAPER: Register as a process subreaper (requires Linux >= 3.4).
  TINI_VERBOSITY: Set the verbosity level (default: 1).
  TINI_KILL_PROCESS_GROUP: Send signals to the child's process group.

$ docker buildx imagetools inspect terascope/node-base:14.21.3-test
Name:      docker.io/terascope/node-base:14.21.3-test
MediaType: application/vnd.oci.image.index.v1+json
Digest:    sha256:c908f9d42663aba714d7712cd68982d4de19c95edb12a2e2b80b03c4ae5e1bb0

Manifests:
  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:5dc9496afac5fbb61aad030bec42aa40bdc4fe0ed7908aaec01fddfcda0576b9
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    linux/arm64

  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:75fb9c3f91c71b0c956dcdc5dfc14b01965b7d77dfc3e877419d700003c21c51
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    linux/amd64

  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:15526dfa51afebfd649f3569798c26a8ff680ca522bf08de311810d221c74e3a
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    unknown/unknown
  Annotations:
    vnd.docker.reference.digest: sha256:5dc9496afac5fbb61aad030bec42aa40bdc4fe0ed7908aaec01fddfcda0576b9
    vnd.docker.reference.type:   attestation-manifest

  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:721063949fc995fe3e4f54bd2cb3032c725137473f905843d06ebe40c906ecbb
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    unknown/unknown
  Annotations:
    vnd.docker.reference.digest: sha256:75fb9c3f91c71b0c956dcdc5dfc14b01965b7d77dfc3e877419d700003c21c51
    vnd.docker.reference.type:   attestation-manifest

Also, uname -a shows it as amd64:

$ docker run terascope/node-base:14.21.3-test uname -a
Linux 96785a3b2506 5.15.49-linuxkit-pr #1 SMP Thu May 25 07:17:40 UTC 2023 x86_64 Linux
sotojn commented 1 year ago

On my m2 MacBook, I am able to pull, run, and inspect the arm64 image :

% docker pull terascope/node-base:14.21.3-test
14.21.3-test: Pulling from terascope/node-base
c41833b44d91: Pull complete 
683339ce8d6b: Pull complete 
4cf6a83c0e2a: Pull complete 
686172e40c38: Pull complete 
4f4fb700ef54: Pull complete 
2f25f9d6a0d3: Pull complete 
40b8f6ff111b: Pull complete 
f9a6097d2c3e: Pull complete 
4ea4d52afcfa: Pull complete 
f81c0527e867: Pull complete 
fea8ee007bea: Pull complete 
3c62cd7692b2: Pull complete 
b14eda9a9f85: Pull complete 
Digest: sha256:c908f9d42663aba714d7712cd68982d4de19c95edb12a2e2b80b03c4ae5e1bb0
Status: Downloaded newer image for terascope/node-base:14.21.3-test
docker.io/terascope/node-base:14.21.3-test

What's Next?
  View summary of image vulnerabilities and recommendations → docker scout quickview terascope/node-base:14.21.3-test
% docker imagetools
docker: 'imagetools' is not a docker command.
See 'docker --help'
jsoto@Josephs-MBP ~ % docker imagetool  
docker: 'imagetool' is not a docker command.
See 'docker --help'
jsoto@Josephs-MBP ~ % docker run terascope/node-base:14.21.3-test 
tini (tini version 0.19.0)
Usage: tini [OPTIONS] PROGRAM -- [ARGS] | --version

Execute a program under the supervision of a valid init process (tini)

Command line options:

  --version: Show version and exit.
  -h: Show this help message and exit.
  -s: Register as a process subreaper (requires Linux >= 3.4).
  -p SIGNAL: Trigger SIGNAL when parent dies, e.g. "-p SIGKILL".
  -v: Generate more verbose output. Repeat up to 3 times.
  -w: Print a warning when processes are getting reaped.
  -g: Send signals to the child's process group.
  -e EXIT_CODE: Remap EXIT_CODE (from 0 to 255) to 0.
  -l: Show license and exit.

Environment variables:

  TINI_SUBREAPER: Register as a process subreaper (requires Linux >= 3.4).
  TINI_VERBOSITY: Set the verbosity level (default: 1).
  TINI_KILL_PROCESS_GROUP: Send signals to the child's process group.

% docker buildx imagetools inspect terascope/node-base:14.21.3-test
Name:      docker.io/terascope/node-base:14.21.3-test
MediaType: application/vnd.oci.image.index.v1+json
Digest:    sha256:c908f9d42663aba714d7712cd68982d4de19c95edb12a2e2b80b03c4ae5e1bb0

Manifests: 
  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:5dc9496afac5fbb61aad030bec42aa40bdc4fe0ed7908aaec01fddfcda0576b9
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    linux/arm64

  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:75fb9c3f91c71b0c956dcdc5dfc14b01965b7d77dfc3e877419d700003c21c51
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    linux/amd64

  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:15526dfa51afebfd649f3569798c26a8ff680ca522bf08de311810d221c74e3a
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    unknown/unknown
  Annotations: 
    vnd.docker.reference.digest: sha256:5dc9496afac5fbb61aad030bec42aa40bdc4fe0ed7908aaec01fddfcda0576b9
    vnd.docker.reference.type:   attestation-manifest

  Name:        docker.io/terascope/node-base:14.21.3-test@sha256:721063949fc995fe3e4f54bd2cb3032c725137473f905843d06ebe40c906ecbb
  MediaType:   application/vnd.oci.image.manifest.v1+json
  Platform:    unknown/unknown
  Annotations: 
    vnd.docker.reference.digest: sha256:75fb9c3f91c71b0c956dcdc5dfc14b01965b7d77dfc3e877419d700003c21c51
    vnd.docker.reference.type:   attestation-manifest