未验证 提交 ba630a3c 编写于 作者: K kezhenxu94 提交者: GitHub

Add Docker images for arm64 architecture (#8141)

上级 f1127a72
......@@ -58,3 +58,9 @@ runs:
uses: apache/skywalking-infra-e2e@main
with:
e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/${{ inputs.config-file }}
- uses: actions/upload-artifact@v2
if: ${{ failure() }}
name: Upload Logs
with:
name: logs
path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
......@@ -27,7 +27,6 @@ on:
env:
SKIP_TEST: true
TAG: ${{ github.sha }}
SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk11:alpine-jre
concurrency:
group: e2e-istio-${{ github.event.pull_request.number || github.ref }}
......@@ -80,4 +79,4 @@ jobs:
if: env.SKIP_CI != 'true'
uses: ./.github/actions/infra-e2e-test
with:
config-file: istio/metrics/e2e.yaml
\ No newline at end of file
config-file: istio/metrics/e2e.yaml
......@@ -36,7 +36,7 @@ jobs:
jdk: [ 8, 11, 12, 13, 14, 15, 16 ]
env:
SW_AGENT_JDK_VERSION: ${{ matrix.jdk }}
SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:alpine-jre
SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:jre
steps:
- uses: actions/checkout@v2
with:
......
......@@ -52,7 +52,5 @@ jobs:
registry: ${{ env.HUB }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build docker image
run: |
make docker || make docker
make docker.push || make docker.push
- name: Build and push docker images
run: make build.all docker.push
......@@ -9,6 +9,7 @@ Release Notes.
* E2E tests immigrate to e2e-v2.
* Support JDK 16 and 17.
* Add Docker images for arm64 architecture.
#### OAP Server
......
......@@ -43,64 +43,47 @@ OAP_NAME ?= oap
UI_NAME ?= ui
TAG ?= latest
.SECONDEXPANSION: #allow $@ to be used in dependency list
.PHONY: docker docker.all docker.oap
.PHONY: docker docker.all
docker: init build.all docker.all
DOCKER_TARGETS:=docker.oap docker.ui
docker.all: $(DOCKER_TARGETS)
ifneq ($(SW_OAP_BASE_IMAGE),)
BUILD_ARGS := $(BUILD_ARGS) --build-arg BASE_IMAGE=$(SW_OAP_BASE_IMAGE)
endif
BUILD_ARGS := $(BUILD_ARGS) --build-arg DIST=$(DIST) --build-arg SKYWALKING_CLI_VERSION=$(CLI_VERSION)
docker.oap: $(CONTEXT)/$(DIST)
docker.oap: $(SW_ROOT)/docker/oap/Dockerfile.oap
docker.oap: $(SW_ROOT)/docker/oap/docker-entrypoint.sh
docker.oap: $(SW_ROOT)/docker/oap/log4j2.xml
docker.oap: NAME = $(OAP_NAME)
docker.oap:
$(DOCKER_RULE)
%.ui: NAME = $(UI_NAME)
%.oap: NAME = $(OAP_NAME)
docker.ui: $(CONTEXT)/$(DIST)
docker.ui: $(SW_ROOT)/docker/ui/Dockerfile.ui
docker.ui: $(SW_ROOT)/docker/ui/docker-entrypoint.sh
docker.ui: $(SW_ROOT)/docker/ui/logback.xml
docker.ui: NAME = $(UI_NAME)
docker.ui:
docker.%: PLATFORMS =
docker.%: LOAD_OR_PUSH = --load
push.%: PLATFORMS = --platform linux/amd64,linux/arm64
push.%: LOAD_OR_PUSH = --push
docker.% push.docker.%: $(CONTEXT)/$(DIST) $(SW_ROOT)/docker/%/*
$(DOCKER_RULE)
# $@ is the name of the target
docker.all: $(DOCKER_TARGETS)
docker.push: $(DOCKER_TARGETS:%=push.%)
# $^ the name of the dependencies for the target
# Rule Steps #
##############
# 1. Make a directory $(DOCKER_BUILD_TOP)/%@
# 2. This rule uses cp to copy all dependency filenames into into $(DOCKER_BUILD_TOP/$@
# 3. This rule then changes directories to $(DOCKER_BUID_TOP)/$@
# 4. This rule runs $(BUILD_PRE) prior to any docker build and only if specified as a dependency variable
# 5. This rule finally runs docker build passing $(BUILD_ARGS) to docker if they are specified as a dependency variable
DOCKER_RULE=time (mkdir -p $(DOCKER_BUILD_TOP)/$@ && cp -r $^ $(DOCKER_BUILD_TOP)/$@ && cd $(DOCKER_BUILD_TOP)/$@ && $(BUILD_PRE) docker build --no-cache $(BUILD_ARGS) -t $(HUB)/$(NAME):$(TAG) -f Dockerfile$(suffix $@) .)
# for each docker.XXX target create a push.docker.XXX target that pushes
# the local docker image to another hub
# a possible optimization is to use tag.$(TGT) as a dependency to do the tag for us
push.docker.oap: NAME = $(OAP_NAME)
push.docker.ui: NAME = $(UI_NAME)
$(foreach TGT,$(DOCKER_TARGETS),push.$(TGT)): push.%: %
time (docker push $(HUB)/$(NAME):$(TAG))
# create a DOCKER_PUSH_TARGETS that's each of DOCKER_TARGETS with a push. prefix
DOCKER_PUSH_TARGETS:=
$(foreach TGT,$(DOCKER_TARGETS),$(eval DOCKER_PUSH_TARGETS+=push.$(TGT)))
# Will build and push docker images.
docker.push: $(DOCKER_PUSH_TARGETS)
# 1. Make a directory $(DOCKER_BUILD_TOP)/$(NAME)
# 2. This rule uses cp to copy all dependency filenames into into $(DOCKER_BUILD_TOP/$(NAME)
# 3. This rule finally runs docker build passing $(BUILD_ARGS) to docker if they are specified as a dependency variable
define DOCKER_RULE
mkdir -p $(DOCKER_BUILD_TOP)/$(NAME)
cp -r $^ $(DOCKER_BUILD_TOP)/$(NAME)
docker buildx create --use --driver docker-container --name skywalking_main > /dev/null 2>&1 || true
docker buildx build $(PLATFORMS) $(LOAD_OR_PUSH) \
--no-cache $(BUILD_ARGS) \
-t $(HUB)/$(NAME):$(TAG) \
-t $(HUB)/$(NAME):latest \
$(DOCKER_BUILD_TOP)/$(NAME)
docker buildx rm skywalking_main || true
endef
......@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
ARG BASE_IMAGE='adoptopenjdk/openjdk11:alpine'
ARG BASE_IMAGE='adoptopenjdk/openjdk11:jre'
ARG SKYWALKING_CLI_VERSION
......@@ -22,8 +22,6 @@ FROM apache/skywalking-cli:$SKYWALKING_CLI_VERSION as cli
FROM $BASE_IMAGE
RUN apk add --no-cache openssl
WORKDIR /skywalking
ENV JAVA_OPTS=" -Xms2G "
......@@ -51,4 +49,4 @@ RUN mkdir ext-config; \
EXPOSE 12800 11800 1234
ENTRYPOINT ["sh", "docker-entrypoint.sh"]
ENTRYPOINT ["bash", "docker-entrypoint.sh"]
......@@ -14,17 +14,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM adoptopenjdk/openjdk11:alpine-jre
FROM adoptopenjdk/openjdk11:jre
ENV JAVA_OPTS=" -Xms256M " \
SW_OAP_ADDRESS="http://127.0.0.1:12800"
WORKDIR skywalking
RUN set -ex; \
apk add --no-cache \
bash
ARG DIST
COPY "$DIST" .
......
......@@ -297,7 +297,7 @@ export OAP_NAME=skywalking-oap-server
export UI_NAME=skywalking-ui
export TAG=$SW_VERSION
export DIST=<the binary package name inside (1), e.g. apache-skywalking-apm-8.8.0.tar.gz>
make docker.all && make docker.push
make docker.push
```
## Clean up the old releases
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -39,7 +39,7 @@ services:
environment:
SW_STORAGE: mysql
SW_SEARCHABLE_ALARM_TAG_KEYS: level,receivers
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
ports:
- 12800
depends_on:
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......@@ -111,4 +111,4 @@ verify:
- expected: expected/trace-detail.yml
query: |
swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace $( \
swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls | grep -A 5 'index.html' | tail -n1 | awk -F ' ' '{print $2}')
\ No newline at end of file
swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls | grep -A 5 'index.html' | tail -n1 | awk -F ' ' '{print $2}')
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../../script/env
steps:
- name: install yq
......
......@@ -51,7 +51,7 @@ services:
environment:
SW_CLUSTER: zookeeper
SW_STORAGE: mysql
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
depends_on:
zk:
condition: service_healthy
......@@ -65,7 +65,7 @@ services:
environment:
SW_CLUSTER: zookeeper
SW_STORAGE: mysql
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
depends_on:
zk:
condition: service_healthy
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -41,7 +41,7 @@ services:
depends_on:
mysql:
condition: service_healthy
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
ports:
- 11800
- 12800
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -41,7 +41,7 @@ services:
SW_JDBC_URL: jdbc:mysql://mysql:3306/swtest
ports:
- 12800
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
networks:
- e2e
depends_on:
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -51,7 +51,7 @@ services:
depends_on:
mysql:
condition: service_healthy
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
ports:
- 12800
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -41,7 +41,7 @@ services:
SW_JDBC_URL: jdbc:mysql://mysql:3306/swtest
ports:
- 12800
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
networks:
- e2e
depends_on:
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -41,7 +41,7 @@ services:
SW_DATA_SOURCE_PASSWORD: ""
ports:
- 12800
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
networks:
- e2e
depends_on:
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -41,7 +41,7 @@ services:
SW_CORE_METRICS_DATA_TTL: 7
SW_JDBC_URL: "jdbc:mysql://tidb:4000/test"
SW_DATA_SOURCE_PASSWORD: ""
entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
depends_on:
tidb:
condition: service_healthy
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -18,7 +18,7 @@
setup:
env: compose
file: docker-compose.yml
timeout: 1200
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
......
......@@ -37,7 +37,7 @@ services:
SW_CONFIG_ETCD_ENDPOINTS: http://etcd:2379
SW_CLUSTER_ETCD_ENDPOINTS: http://etcd:2379
healthcheck:
test: ["CMD", "sh", "-c", "nc -zn 127.0.0.1 11800"]
test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"]
interval: 5s
timeout: 60s
retries: 120
......
......@@ -17,8 +17,6 @@
set -ex
apk add curl
SW_HOME=/skywalking
MYSQL_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar"
MYSQL_DRIVER="mysql-connector-java-8.0.13.jar"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册