File tree Expand file tree Collapse file tree 6 files changed +72
-17
lines changed Expand file tree Collapse file tree 6 files changed +72
-17
lines changed Original file line number Diff line number Diff line change 54
54
$RETRY bash -c './mvnw verify -B --strict-checksums -P ci -pl :trino-server-rpm || find core/trino-server-rpm/ -exec ls -ald {} +'
55
55
- name : Clean Maven Output
56
56
run : ./mvnw clean -pl '!:trino-server,!:trino-cli'
57
+ - uses : docker/setup-qemu-action@v1
58
+ with :
59
+ platforms : arm64
57
60
- name : Test Docker Image
58
61
run : core/docker/build-local.sh
59
62
File renamed without changes.
Original file line number Diff line number Diff line change
1
+ #
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ #
14
+ FROM centos:centos8
15
+
16
+ ENV JAVA_HOME /usr/lib/jvm/jre-11
17
+ RUN \
18
+ set -xeu && \
19
+ yum -y -q install python3 java-11-openjdk-headless && \
20
+ yum -q clean all && \
21
+ rm -rf /var/cache/yum && \
22
+ alternatives --set python /usr/bin/python3 && \
23
+ groupadd trino --gid 1000 && \
24
+ useradd trino --uid 1000 --gid 1000 && \
25
+ mkdir -p /usr/lib/trino /data/trino && \
26
+ chown -R "trino:trino" /usr/lib/trino /data/trino
27
+
28
+ ARG TRINO_VERSION
29
+ COPY trino-cli-${TRINO_VERSION}-executable.jar /usr/bin/trino
30
+ COPY --chown=trino:trino trino-server-${TRINO_VERSION} /usr/lib/trino
31
+ COPY --chown=trino:trino default/etc /etc/trino
32
+
33
+ EXPOSE 8080
34
+ USER trino:trino
35
+ ENV LANG en_US.UTF-8
36
+ CMD ["/usr/lib/trino/bin/run-trino" ]
Original file line number Diff line number Diff line change 1
1
#! /usr/bin/env bash
2
2
3
- set -euxo pipefail
3
+ set -euo pipefail
4
4
5
5
SOURCE_DIR=" ../.."
6
6
@@ -24,11 +24,16 @@ cp ${SOURCE_DIR}/client/trino-cli/target/trino-cli-${TRINO_VERSION}-executable.j
24
24
25
25
CONTAINER=" trino:${TRINO_VERSION} "
26
26
27
- docker build ${WORK_DIR} --pull -f Dockerfile -t ${CONTAINER} --build-arg " TRINO_VERSION=${TRINO_VERSION} "
27
+ docker build ${WORK_DIR} --pull --platform linux/amd64 -f amd64.dockerfile -t ${CONTAINER} -amd64 --build-arg " TRINO_VERSION=${TRINO_VERSION} "
28
+ docker build ${WORK_DIR} --pull --platform linux/arm64 -f arm64.dockerfile -t ${CONTAINER} -arm64 --build-arg " TRINO_VERSION=${TRINO_VERSION} "
28
29
29
30
rm -r ${WORK_DIR}
30
31
31
32
# Source common testing functions
32
33
. container-test.sh
33
34
34
- test_container ${CONTAINER}
35
+ test_container ${CONTAINER} -amd64 linux/amd64
36
+ test_container ${CONTAINER} -arm64 linux/arm64
37
+
38
+ docker image inspect -f ' 🚀 Built {{.RepoTags}} {{.Id}}' ${CONTAINER} -amd64
39
+ docker image inspect -f ' 🚀 Built {{.RepoTags}} {{.Id}}' ${CONTAINER} -arm64
Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ if [[ $# -lt 1 ]]; then
5
5
exit 1
6
6
fi
7
7
8
- set -euxo pipefail
8
+ set -euo pipefail
9
9
10
10
# Retrieve the script directory.
11
11
SCRIPT_DIR=" ${BASH_SOURCE%/* } "
@@ -27,11 +27,16 @@ chmod +x ${WORK_DIR}/trino-cli-${TRINO_VERSION}-executable.jar
27
27
28
28
CONTAINER=" trino:${TRINO_VERSION} "
29
29
30
- docker build ${WORK_DIR} --pull -f Dockerfile -t ${CONTAINER} --build-arg " TRINO_VERSION=${TRINO_VERSION} "
30
+ docker build ${WORK_DIR} --pull --platform linux/amd64 -f amd64.dockerfile -t ${CONTAINER} -amd64 --build-arg " TRINO_VERSION=${TRINO_VERSION} "
31
+ docker build ${WORK_DIR} --pull --platform linux/arm64 -f arm64.dockerfile -t ${CONTAINER} -arm64 --build-arg " TRINO_VERSION=${TRINO_VERSION} "
31
32
32
33
rm -r ${WORK_DIR}
33
34
34
35
# Source common testing functions
35
36
. container-test.sh
36
37
37
- test_container ${CONTAINER}
38
+ test_container ${CONTAINER} -amd64 linux/amd64
39
+ test_container ${CONTAINER} -arm64 linux/arm64
40
+
41
+ docker image inspect -f ' 🚀 Built {{.RepoTags}} {{.Id}}' ${CONTAINER} -amd64
42
+ docker image inspect -f ' 🚀 Built {{.RepoTags}} {{.Id}}' ${CONTAINER} -arm64
Original file line number Diff line number Diff line change 1
- #! /usr/bin/env bash
2
-
3
- set -euxo pipefail
4
-
5
- CONTAINER_ID=
6
-
7
1
function cleanup {
8
2
if [[ ! -z ${CONTAINER_ID:- } ]]; then
9
3
docker stop " ${CONTAINER_ID} "
@@ -14,35 +8,47 @@ function test_trino_starts {
14
8
local QUERY_PERIOD=5
15
9
local QUERY_RETRIES=30
16
10
11
+ CONTAINER_ID=
17
12
trap cleanup EXIT
18
13
19
14
local CONTAINER_NAME=$1
20
- CONTAINER_ID=$( docker run -d --rm " ${CONTAINER_NAME} " )
15
+ local PLATFORM=$2
16
+ CONTAINER_ID=$( docker run -d --rm --platform ${PLATFORM} " ${CONTAINER_NAME} " )
21
17
22
18
set +e
23
19
I=0
24
- until RESULT=$( docker exec " ${CONTAINER_ID} " trino --execute " SELECT 'success'" ) ; do
20
+ until RESULT=$( docker exec " ${CONTAINER_ID} " trino --execute " SELECT 'success'" 2> /dev/null)
21
+ do
25
22
if [[ $(( I++ )) -ge ${QUERY_RETRIES} ]]; then
26
- echo " Too many retries waiting for Trino to start. "
23
+ echo " 🚨 Too many retries waiting for Trino to start"
27
24
break
28
25
fi
29
26
sleep ${QUERY_PERIOD}
30
27
done
31
28
set -e
32
29
30
+ cleanup
31
+ trap - EXIT
32
+
33
33
# Return proper exit code.
34
34
[[ ${RESULT} == ' "success"' ]]
35
35
}
36
36
37
37
function test_javahome {
38
38
local CONTAINER_NAME=$1
39
+ local PLATFORM=$2
39
40
# Check if JAVA_HOME works
40
- docker run --rm " ${CONTAINER_NAME} " /bin/bash -c ' $JAVA_HOME/bin/java -version' & > /dev/null
41
+ docker run --rm --platform ${PLATFORM} " ${CONTAINER_NAME} " \
42
+ /bin/bash -c ' $JAVA_HOME/bin/java -version' & > /dev/null
41
43
42
44
[[ " $? " == " 0" ]]
43
45
}
44
46
45
47
function test_container {
46
48
local CONTAINER_NAME=$1
47
- test_javahome ${CONTAINER_NAME} && test_trino_starts ${CONTAINER_NAME}
49
+ local PLATFORM=$2
50
+ echo " 🐢 Validating ${CONTAINER_NAME} on platform ${PLATFORM} ..."
51
+ test_javahome ${CONTAINER_NAME} ${PLATFORM}
52
+ test_trino_starts ${CONTAINER_NAME} ${PLATFORM}
53
+ echo " 🎉 Validated ${CONTAINER_NAME} on platform ${PLATFORM} "
48
54
}
You can’t perform that action at this time.
0 commit comments