File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2,6 +2,11 @@ services:
22 todo-service-name :
33 build :
44 dockerfile : ./docker/${IMAGE_TAG}/Dockerfile
5+ args :
6+ BASE_IMAGE : ${BASE_IMAGE}
7+ IMAGE_USER : ${IMAGE_USER}
8+ HOME_FOLDER : ${HOME_FOLDER}
9+ TIME_ZONE : ${TIME_ZONE}
510 x-bake :
611 contexts :
712 home-folder-config : ./docker/build-context/home-folder-config
Original file line number Diff line number Diff line change 11# Do not add --platform=linux/blabla since this is intended for multiplatform builds
2+ ARG BASE_IMAGE=ubuntu
23FROM ${BASE_IMAGE}
4+
5+ ARG IMAGE_USER
6+ ARG HOME_FOLDER
7+ ARG TIME_ZONE
8+
39ENV HOME=${HOME_FOLDER}
410WORKDIR ${HOME_FOLDER}/
511
@@ -66,9 +72,9 @@ RUN wget https://apt-get.kitware.com/kitware-archive.sh -O- | sh -s && \
6672 apt-get autoremove -y
6773
6874# # Add a new group and user
69- # RUN addgroup --gid 1000 $IMAGE_USER && \
70- # adduser --uid 1000 --ingroup $IMAGE_USER --home ${HOME_FOLDER} --shell /bin/zsh --disabled-password --gecos "" $IMAGE_USER && \
71- # echo "$IMAGE_USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
75+ # RUN addgroup --gid 1000 ${ IMAGE_USER} && \
76+ # adduser --uid 1000 --ingroup ${ IMAGE_USER} --home ${HOME_FOLDER} --shell /bin/zsh --disabled-password --gecos "" ${ IMAGE_USER} && \
77+ # echo "${ IMAGE_USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
7278
7379# # Fix UID/GID when mounting from host using this: https://github.com/boxboat/fixuid
7480# RUN curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - && \
Original file line number Diff line number Diff line change 1010
1111set -euo pipefail
1212
13- before_env=" $( mktemp) "
14- after_env=" $( mktemp) "
15- tmp_dockerfile=" $( mktemp) "
16- cleanup () { rm -f " ${before_env} " " ${after_env} " " ${tmp_dockerfile} " ; }
17- trap cleanup EXIT
18-
19- env | sort > " ${before_env} "
20-
2113set -a
2214. " $( dirname " $0 " ) " /variables.sh
2315set +a
2416
25- env | sort > " ${after_env} "
26-
27- diff_env=" $(
28- awk -F= '
29- NR==FNR { before[$1]=$0; next }
30- {
31- name=$1
32- if (!(name in before) || before[name] != $0)
33- printf " ${%s}", name
34- }
35- ' " ${before_env} " " ${after_env} "
36- ) "
37- diff_env=" ${diff_env# } " # trim leading space
38-
3917# Determine the local platform
4018if [[ " $( uname -m) " == " x86_64" ]]; then
4119 LOCAL_PLATFORM=" linux/amd64"
5836 docker buildx use " ${BUILDER} "
5937fi
6038
61- # environment variable substitution trick
62- envsubst " ${diff_env} " < " $( dirname " $0 " ) /../docker/${IMAGE_TAG} /Dockerfile" > " ${tmp_dockerfile} "
63-
64- echo " >>> Substituted dockerfile:"
65- echo " ----------------------------------------"
66- cat " ${tmp_dockerfile} "
67- echo " ----------------------------------------"
68-
6939# Build the Docker image for only the local platform, push.sh will push multi-platform version
70- docker buildx bake --file " $( dirname " $0 " ) " /../docker-compose.yml --load --set " *.platform=${LOCAL_PLATFORM} " --set " *.dockerfile= ${tmp_dockerfile} "
40+ docker buildx bake --file " $( dirname " $0 " ) " /../docker-compose.yml --load --set " *.platform=${LOCAL_PLATFORM} "
Original file line number Diff line number Diff line change 1010
1111set -euo pipefail
1212
13- before_env=" $( mktemp) "
14- after_env=" $( mktemp) "
15- tmp_dockerfile=" $( mktemp) "
16- cleanup () { rm -f " ${before_env} " " ${after_env} " " ${tmp_dockerfile} " ; }
17- trap cleanup EXIT
18-
19- env | sort > " ${before_env} "
20-
2113set -a
2214. " $( dirname " $0 " ) " /variables.sh
2315set +a
2416
25- env | sort > " ${after_env} "
26-
27- diff_env=" $(
28- awk -F= '
29- NR==FNR { before[$1]=$0; next }
30- {
31- name=$1
32- if (!(name in before) || before[name] != $0)
33- printf " ${%s}", name
34- }
35- ' " ${before_env} " " ${after_env} "
36- ) "
37- diff_env=" ${diff_env# } " # trim leading space
38-
3917# Check if the builder already exists
4018if ! docker buildx inspect " ${BUILDER} " & > /dev/null; then
4119 echo " Creating Docker Buildx builder '${BUILDER} '..."
4826 docker buildx use " ${BUILDER} "
4927fi
5028
51- # environment variable substitution trick
52- envsubst " ${diff_env} " < " $( dirname " $0 " ) /../docker/${IMAGE_TAG} /Dockerfile" > " ${tmp_dockerfile} "
53-
54- echo " >>> Substituted dockerfile:"
55- echo " ----------------------------------------"
56- cat " ${tmp_dockerfile} "
57- echo " ----------------------------------------"
58-
5929# docker push "${DOCKER_USER}"/"${IMAGE_NAME}":"${IMAGE_TAG}"
6030
61- docker buildx bake --file " $( dirname " $0 " ) " /../docker-compose.yml --push --set " *.dockerfile= ${tmp_dockerfile} "
31+ docker buildx bake --file " $( dirname " $0 " ) " /../docker-compose.yml --push
You can’t perform that action at this time.
0 commit comments