Skip to content

Added multiple versions of alpine - #1125

Merged
PeterDaveHello merged 1 commit into
nodejs:masterfrom
LaurentGoderre:multiple-alpine
Nov 14, 2019
Merged

Added multiple versions of alpine#1125
PeterDaveHello merged 1 commit into
nodejs:masterfrom
LaurentGoderre:multiple-alpine

Conversation

@LaurentGoderre

Copy link
Copy Markdown
Member

Should wait for #1026 before merging

@nschonni

Copy link
Copy Markdown
Member

Looks like the docker-entrypoint.sh execution permission changed from executable

@nschonni

Copy link
Copy Markdown
Member

I think there should probably be a plain "alpine" alias, but I'm not sure what image it should point to

@LaurentGoderre

Copy link
Copy Markdown
MemberAuthor

@nschonni the alpine tag is generated with this change.

@LaurentGoderre

LaurentGoderre commented Oct 29, 2019

Copy link
Copy Markdown
MemberAuthor

@PeterDaveHello@tianon@yosifkit this is ready for final review!

Comment threadfunctions.sh Outdated
Comment threadfunctions.sh Outdated
Comment threadupdate.sh Outdated
Comment threadgenerate-stackbrew-library.sh Outdated
@LaurentGoderre
LaurentGoderreforce-pushed the multiple-alpine branch 5 times, most recently from cc1abc0 to 8e59fb3CompareOctober 31, 2019 18:13
@LaurentGoderre

Copy link
Copy Markdown
MemberAuthor

@PeterDaveHello can you review again?

@LaurentGoderre

Copy link
Copy Markdown
MemberAuthor

@tianon@yosifkit can I ask for a quick review of this before I merge?

@LaurentGoderre

Copy link
Copy Markdown
MemberAuthor

@PeterDaveHello#1142 is being applied to all the alpines now with this one. Can we merge when the build passes?

@tianon

Copy link
Copy Markdown
Contributor
A simpler diff for review (generated via `git diff` cli):
diff --git a/.travis.yml b/.travis.yml
index 9c78b6d..0055174 100644
--- a/.travis.yml+++ b/.travis.yml@@ -128,13 +128,6 @@ jobs:
- NODE_VERSION="10"
- VARIANT="jessie-slim"
- - stage: Build- before_script: *auto_skip- name: 10 on alpine- env:- - NODE_VERSION="10"- - VARIANT="alpine"-
- stage: Build
before_script: *auto_skip
name: 10 on stretch
@@ -165,10 +158,17 @@ jobs:
- stage: Build
before_script: *auto_skip
- name: 12 on alpine+ name: 10 on alpine3.9
env:
- - NODE_VERSION="12"- - VARIANT="alpine"+ - NODE_VERSION="10"+ - VARIANT="alpine3.9"++ - stage: Build+ before_script: *auto_skip+ name: 10 on alpine3.10+ env:+ - NODE_VERSION="10"+ - VARIANT="alpine3.10"
- stage: Build
before_script: *auto_skip
@@ -200,10 +200,17 @@ jobs:
- stage: Build
before_script: *auto_skip
- name: 13 on alpine+ name: 12 on alpine3.9
env:
- - NODE_VERSION="13"- - VARIANT="alpine"+ - NODE_VERSION="12"+ - VARIANT="alpine3.9"++ - stage: Build+ before_script: *auto_skip+ name: 12 on alpine3.10+ env:+ - NODE_VERSION="12"+ - VARIANT="alpine3.10"
- stage: Build
before_script: *auto_skip
@@ -233,6 +240,13 @@ jobs:
- NODE_VERSION="13"
- VARIANT="buster-slim"
+ - stage: Build+ before_script: *auto_skip+ name: 13 on alpine3.10+ env:+ - NODE_VERSION="13"+ - VARIANT="alpine3.10"+
- stage: Build
before_script: *auto_skip
name: 8 on jessie
@@ -249,45 +263,45 @@ jobs:
- stage: Build
before_script: *auto_skip
- name: 8 on alpine+ name: 8 on stretch
env:
- NODE_VERSION="8"
- - VARIANT="alpine"+ - VARIANT="stretch"
- stage: Build
before_script: *auto_skip
- name: 8 on onbuild+ name: 8 on stretch-slim
env:
- NODE_VERSION="8"
- - VARIANT="onbuild"+ - VARIANT="stretch-slim"
- stage: Build
before_script: *auto_skip
- name: 8 on stretch+ name: 8 on buster
env:
- NODE_VERSION="8"
- - VARIANT="stretch"+ - VARIANT="buster"
- stage: Build
before_script: *auto_skip
- name: 8 on stretch-slim+ name: 8 on buster-slim
env:
- NODE_VERSION="8"
- - VARIANT="stretch-slim"+ - VARIANT="buster-slim"
- stage: Build
before_script: *auto_skip
- name: 8 on buster+ name: 8 on alpine3.9
env:
- NODE_VERSION="8"
- - VARIANT="buster"+ - VARIANT="alpine3.9"
- stage: Build
before_script: *auto_skip
- name: 8 on buster-slim+ name: 8 on alpine3.10
env:
- NODE_VERSION="8"
- - VARIANT="buster-slim"+ - VARIANT="alpine3.10"
- stage: Build
before_script: *auto_skip
diff --git a/10/alpine/Dockerfile b/10/alpine3.10/Dockerfile
similarity index 98%
copy from 10/alpine/Dockerfile
copy to 10/alpine3.10/Dockerfile
index 123238e..4e088fc 100644
--- a/10/alpine/Dockerfile+++ b/10/alpine3.10/Dockerfile@@ -1,4 +1,4 @@-FROM alpine:3.9+FROM alpine:3.10
ENV NODE_VERSION 10.17.0
@@ -8,7 +8,7 @@ RUN addgroup -g 1000 node \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
- && ARCH= && alpineArch="$(arch)" \+ && ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
diff --git a/10/alpine/docker-entrypoint.sh b/10/alpine3.10/docker-entrypoint.sh
similarity index 100%
copy from 10/alpine/docker-entrypoint.sh
copy to 10/alpine3.10/docker-entrypoint.sh
diff --git a/10/alpine/Dockerfile b/10/alpine3.9/Dockerfile
similarity index 98%
rename from 10/alpine/Dockerfile
rename to 10/alpine3.9/Dockerfile
index 123238e..7bfe8d2 100644
--- a/10/alpine/Dockerfile+++ b/10/alpine3.9/Dockerfile@@ -8,7 +8,7 @@ RUN addgroup -g 1000 node \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
- && ARCH= && alpineArch="$(arch)" \+ && ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
diff --git a/12/alpine/docker-entrypoint.sh b/10/alpine3.9/docker-entrypoint.sh
similarity index 100%
rename from 12/alpine/docker-entrypoint.sh
rename to 10/alpine3.9/docker-entrypoint.sh
diff --git a/10/architectures b/10/architectures
index 5f77c7c..162fbcb 100644
--- a/10/architectures+++ b/10/architectures@@ -1,8 +1,8 @@
bashbrew-arch variants
-amd64 jessie,jessie-slim,alpine,stretch,stretch-slim,buster,buster-slim-arm32v6 alpine-arm32v7 jessie,jessie-slim,alpine,stretch,stretch-slim,buster,buster-slim-arm64v8 alpine,stretch,stretch-slim,buster,buster-slim-i386 alpine-ppc64le alpine,stretch,stretch-slim,buster,buster-slim-s390x alpine,stretch,stretch-slim,buster,buster-slim+amd64 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm32v6 alpine3.9,alpine3.10+arm32v7 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm64v8 stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+i386 alpine3.9,alpine3.10+ppc64le stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+s390x stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10diff --git a/12/alpine/Dockerfile b/12/alpine3.10/Dockerfile
similarity index 98%
copy from 12/alpine/Dockerfile
copy to 12/alpine3.10/Dockerfile
index ae0bce7..a23bb5b 100644
--- a/12/alpine/Dockerfile+++ b/12/alpine3.10/Dockerfile@@ -1,4 +1,4 @@-FROM alpine:3.9+FROM alpine:3.10
ENV NODE_VERSION 12.13.0
@@ -8,7 +8,7 @@ RUN addgroup -g 1000 node \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
- && ARCH= && alpineArch="$(arch)" \+ && ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
diff --git a/13/alpine/docker-entrypoint.sh b/12/alpine3.10/docker-entrypoint.sh
similarity index 100%
rename from 13/alpine/docker-entrypoint.sh
rename to 12/alpine3.10/docker-entrypoint.sh
diff --git a/12/alpine/Dockerfile b/12/alpine3.9/Dockerfile
similarity index 98%
rename from 12/alpine/Dockerfile
rename to 12/alpine3.9/Dockerfile
index ae0bce7..90d90b6 100644
--- a/12/alpine/Dockerfile+++ b/12/alpine3.9/Dockerfile@@ -8,7 +8,7 @@ RUN addgroup -g 1000 node \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
- && ARCH= && alpineArch="$(arch)" \+ && ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
diff --git a/8/alpine/docker-entrypoint.sh b/12/alpine3.9/docker-entrypoint.sh
similarity index 100%
rename from 8/alpine/docker-entrypoint.sh
rename to 12/alpine3.9/docker-entrypoint.sh
diff --git a/12/architectures b/12/architectures
index 7adab03..0185a0f 100644
--- a/12/architectures+++ b/12/architectures@@ -1,8 +1,8 @@
bashbrew-arch variants
-amd64 alpine,stretch,stretch-slim,buster,buster-slim-arm32v6 alpine-arm32v7 alpine,stretch,stretch-slim,buster,buster-slim-arm64v8 alpine,stretch,stretch-slim,buster,buster-slim-i386 alpine-ppc64le alpine,stretch,stretch-slim,buster,buster-slim-s390x alpine,stretch,stretch-slim,buster,buster-slim+amd64 stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm32v6 alpine3.9,alpine3.10+arm32v7 stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm64v8 stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+i386 alpine3.9,alpine3.10+ppc64le stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+s390x stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10diff --git a/13/alpine/Dockerfile b/13/alpine3.10/Dockerfile
similarity index 100%
rename from 13/alpine/Dockerfile
rename to 13/alpine3.10/Dockerfile
diff --git a/10/alpine/docker-entrypoint.sh b/13/alpine3.10/docker-entrypoint.sh
similarity index 100%
copy from 10/alpine/docker-entrypoint.sh
copy to 13/alpine3.10/docker-entrypoint.sh
diff --git a/8/alpine/Dockerfile b/8/alpine3.10/Dockerfile
similarity index 98%
copy from 8/alpine/Dockerfile
copy to 8/alpine3.10/Dockerfile
index 1822ac3..b0b7637 100644
--- a/8/alpine/Dockerfile+++ b/8/alpine3.10/Dockerfile@@ -1,4 +1,4 @@-FROM alpine:3.9+FROM alpine:3.10
ENV NODE_VERSION 8.16.2
@@ -8,7 +8,7 @@ RUN addgroup -g 1000 node \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
- && ARCH= && alpineArch="$(arch)" \+ && ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
diff --git a/10/alpine/docker-entrypoint.sh b/8/alpine3.10/docker-entrypoint.sh
similarity index 100%
copy from 10/alpine/docker-entrypoint.sh
copy to 8/alpine3.10/docker-entrypoint.sh
diff --git a/8/alpine/Dockerfile b/8/alpine3.9/Dockerfile
similarity index 98%
rename from 8/alpine/Dockerfile
rename to 8/alpine3.9/Dockerfile
index 1822ac3..f9ecccd 100644
--- a/8/alpine/Dockerfile+++ b/8/alpine3.9/Dockerfile@@ -8,7 +8,7 @@ RUN addgroup -g 1000 node \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
- && ARCH= && alpineArch="$(arch)" \+ && ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
diff --git a/10/alpine/docker-entrypoint.sh b/8/alpine3.9/docker-entrypoint.sh
similarity index 100%
rename from 10/alpine/docker-entrypoint.sh
rename to 8/alpine3.9/docker-entrypoint.sh
diff --git a/8/architectures b/8/architectures
index 11c069b..39a08d8 100644
--- a/8/architectures+++ b/8/architectures@@ -1,8 +1,8 @@
bashbrew-arch variants
-amd64 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-arm32v6 alpine-arm32v7 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-arm64v8 alpine,onbuild,stretch,stretch-slim,buster,buster-slim-i386 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-ppc64le alpine,onbuild,stretch,stretch-slim,buster,buster-slim-s390x alpine,onbuild,stretch,stretch-slim,buster,buster-slim+amd64 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10,onbuild+arm32v6 alpine3.9,alpine3.10+arm32v7 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10,onbuild+arm64v8 stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10,onbuild+i386 jessie,jessie-slim,alpine,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10,onbuild+ppc64le stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10,onbuild+s390x stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10,onbuilddiff --git a/architectures b/architectures
index 64b4164..565bbb7 100644
--- a/architectures+++ b/architectures@@ -1,8 +1,8 @@
bashbrew-arch variants
-amd64 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-arm32v6 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-arm32v7 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-arm64v8 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-i386 jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-ppc64le jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim-s390x jessie,jessie-slim,alpine,onbuild,stretch,stretch-slim,buster,buster-slim+amd64 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm32v6 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm32v7 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+arm64v8 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+i386 jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+ppc64le jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10+s390x jessie,jessie-slim,stretch,stretch-slim,buster,buster-slim,alpine3.9,alpine3.10diff --git a/functions.sh b/functions.sh
index 203b08a..5f37f35 100755
--- a/functions.sh+++ b/functions.sh@@ -169,6 +169,16 @@ function get_versions() {
fi
}
+function is_alpine() {+ local variant+ variant=${1}+ shift++ if [ "${variant}" = "${variant#alpine}" ]; then+ return 1+ fi+}+
function is_debian() {
local variant
variant=$1
diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh
index 5dbe1f1..a29e6e8 100755
--- a/generate-stackbrew-library.sh+++ b/generate-stackbrew-library.sh@@ -21,6 +21,8 @@ array_chakracore_10='chakracore-10 chakracore'
default_variant=$(get_config "./" "default_variant")
+default_alpine=$(get_config "./" "alpine_version")+
cd "$(cd "${0%/*}" && pwd -P)"
self="$(basename "${BASH_SOURCE[0]}")"
@@ -93,11 +95,12 @@ for version in "${versions[@]}"; do
variantAliases=("${versionAliases[@]/%/-${variant//${slash}/-}}")
if [ "${variant}" = "${default_variant}-slim" ]; then
variantAliases+=("${versionAliases[@]/%/-slim}")
- fi- variantAliases=("${variantAliases[@]//latest-/}")- if [ "${variant}" = "${default_variant}" ]; then+ elif [ "${variant}" = "alpine${default_alpine}" ]; then+ variantAliases+=("${versionAliases[@]/%/-alpine}")+ elif [ "${variant}" = "${default_variant}" ]; then
variantAliases+=("${versionAliases[@]}")
fi
+ variantAliases=("${variantAliases[@]//latest-/}")
# Get supported architectures for a specific version and variant.
# See details in function.sh
diff --git a/update.sh b/update.sh
index 6805b96..8fd0b86 100755
--- a/update.sh+++ b/update.sh@@ -162,16 +162,11 @@ function update_node_version() {
sed -Ei -e "/${pattern}/d" "${dockerfile}-tmp"
done
- if [ "${variant}" = "alpine" ]; then- if [ "${SKIP}" = true ]; then- # Get the currently used Alpine version- alpine_version=$(grep "FROM" "${dockerfile}" | cut -d':' -f2)- checksum=$(grep -o "CHECKSUM=\".*\"" "${dockerfile}" | cut -d'=' -f2)- else+ if is_alpine "${variant}"; then+ alpine_version="${variant#*alpine}"
checksum="\"$(
curl -sSL --compressed "https://unofficial-builds.nodejs.org/download/release/v${nodeVersion}/SHASUMS256.txt" | grep "node-v${nodeVersion}-linux-x64-musl.tar.xz" | cut -d' ' -f1
)\""
- fi
sed -Ei -e "s/(alpine:)0.0/\\1${alpine_version}/" "${dockerfile}-tmp"
sed -Ei -e "s/CHECKSUM=CHECKSUM_x64/CHECKSUM=${checksum}/" "${dockerfile}-tmp"
elif is_debian "${variant}"; then
@@ -249,6 +244,8 @@ for version in "${versions[@]}"; do
template_file="${parentpath}/Dockerfile-debian.template"
elif is_debian_slim "${variant}"; then
template_file="${parentpath}/Dockerfile-slim.template"
+ elif is_alpine "${variant}"; then+ template_file="${parentpath}/Dockerfile-alpine.template"
fi
[ "$variant" != "onbuild" ] && cp "${parentpath}/docker-entrypoint.sh" "${version}/${variant}/docker-entrypoint.sh"

@tianon

Copy link
Copy Markdown
Contributor

I didn't verify the architectures files, but the Dockerfiles/contexts look fine to me. 👍

@LaurentGoderre

Copy link
Copy Markdown
MemberAuthor

@tianon the architecture files are a bit different because I grouped the OS together (debian and alpine)

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Created PR to the official-images repo (docker-library/official-images#6972)

@nschonni

Copy link
Copy Markdown
Member

Mostly looks good, but it looks like the "13-alpine" tag is missing

@LaurentGoderre

Copy link
Copy Markdown
MemberAuthor

@rvagg you commented on my other PR being opened for 6 months but I have been working towards this change for over 2 years!

@LaurentGoderre
LaurentGoderre deleted the multiple-alpine branch November 14, 2019 15:56
@rvagg

Copy link
Copy Markdown
Member

Respect, for the stamina!

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@LaurentGoderre@nschonni@tianon@nodejs-github-bot@rvagg@PeterDaveHello