This is an automated email from the ASF dual-hosted git repository.

zhangjintao pushed a commit to branch release/apisix-3.3.0
in repository https://gitbox.apache.org/repos/asf/apisix-docker.git


The following commit(s) were added to refs/heads/release/apisix-3.3.0 by this 
push:
     new 0e0ddec  feat: add build for platform=redhat with ubi based image 
(#462) (#467)
0e0ddec is described below

commit 0e0ddec788c55fcc67492f7cfcf351064805dc87
Author: Ashish Tiwari <[email protected]>
AuthorDate: Fri May 26 13:32:26 2023 +0530

    feat: add build for platform=redhat with ubi based image (#462) (#467)
---
 .github/workflows/apisix-docker-example-test.yaml |  1 +
 .github/workflows/apisix_push_docker_hub.yaml     |  1 +
 Makefile                                          | 15 ++++++++
 debian-dev/Dockerfile                             |  1 +
 redhat/Dockerfile                                 | 46 +++++++++++++++++++++++
 redhat/docker-entrypoint.sh                       | 46 +++++++++++++++++++++++
 redhat/yum.repos.d/apache-apisix.repo             |  9 +++++
 redhat/yum.repos.d/openresty.repo                 |  9 +++++
 8 files changed, 128 insertions(+)

diff --git a/.github/workflows/apisix-docker-example-test.yaml 
b/.github/workflows/apisix-docker-example-test.yaml
index 96b0752..db6bbc4 100644
--- a/.github/workflows/apisix-docker-example-test.yaml
+++ b/.github/workflows/apisix-docker-example-test.yaml
@@ -43,6 +43,7 @@ jobs:
         platform:
           - centos
           - debian
+          - redhat
 
     steps:
       - uses: actions/checkout@v2
diff --git a/.github/workflows/apisix_push_docker_hub.yaml 
b/.github/workflows/apisix_push_docker_hub.yaml
index c6ff77d..2ce3b48 100644
--- a/.github/workflows/apisix_push_docker_hub.yaml
+++ b/.github/workflows/apisix_push_docker_hub.yaml
@@ -12,6 +12,7 @@ jobs:
         platform:
           - centos
           - debian
+          - redhat
     env:
       APISIX_DOCKER_TAG: 3.3.0-${{ matrix.platform }}
 
diff --git a/Makefile b/Makefile
index b208308..a94dcfa 100644
--- a/Makefile
+++ b/Makefile
@@ -69,6 +69,12 @@ build-on-centos:
        $(ENV_DOCKER) build -t $(ENV_APISIX_IMAGE_TAG_NAME)-centos -f 
./centos/Dockerfile centos
        @$(call func_echo_success_status, "$@ -> [ Done ]")
 
+### build-on-redhat : Build apache/apisix:xx-redhat image
+.PHONY: build-on-redhat
+build-on-redhat:
+       @$(call func_echo_status, "$@ -> [ Start ]")
+       $(ENV_DOCKER) build -t $(ENV_APISIX_IMAGE_TAG_NAME)-redhat -f 
./redhat/Dockerfile redhat
+       @$(call func_echo_success_status, "$@ -> [ Done ]")
 
 ### build-on-debian-dev : Build apache/apisix:xx-debian-dev image
 .PHONY: build-on-debian-dev
@@ -118,6 +124,15 @@ push-multiarch-on-centos:
                -f ./centos/Dockerfile centos
        @$(call func_echo_success_status, "$@ -> [ Done ]")
 
+### push-multiarch-on-redhat : Push apache/apisix:xx-redhat image
+.PHONY: push-multiarch-on-redhat
+push-multiarch-on-redhat:
+       @$(call func_echo_status, "$@ -> [ Start ]")
+       $(ENV_DOCKER) buildx build --network=host --push \
+               -t $(ENV_APISIX_IMAGE_TAG_NAME)-redhat \
+               --platform linux/amd64 \
+               -f ./redhat/Dockerfile redhat
+       @$(call func_echo_success_status, "$@ -> [ Done ]")
 
 ### push-multiarch-on-latest : Push apache/apisix:latest image
 .PHONY: push-multiarch-on-latest
diff --git a/debian-dev/Dockerfile b/debian-dev/Dockerfile
index 59df830..03d89c9 100644
--- a/debian-dev/Dockerfile
+++ b/debian-dev/Dockerfile
@@ -34,6 +34,7 @@ RUN set -x \
         sudo \
         unzip \
         wget \
+        rustc \
     && curl 
https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh
 -sL | bash - \
     && luarocks install 
https://github.com/apache/apisix/raw/master/rockspec/apisix-master-0.rockspec 
--tree=/usr/local/apisix/deps PCRE_DIR=/usr/local/openresty/pcre \
     && cp -v 
/usr/local/apisix/deps/lib/luarocks/rocks-5.1/apisix/master-0/bin/apisix 
/usr/bin/ \
diff --git a/redhat/Dockerfile b/redhat/Dockerfile
new file mode 100644
index 0000000..645909a
--- /dev/null
+++ b/redhat/Dockerfile
@@ -0,0 +1,46 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM registry.access.redhat.com/ubi8/ubi:8.6
+
+ARG APISIX_VERSION=3.3.0
+LABEL apisix_version="${APISIX_VERSION}"
+COPY ./yum.repos.d/apache-apisix.repo /etc/yum.repos.d/apache-apisix.repo
+COPY ./yum.repos.d/openresty.repo /etc/yum.repos.d/openresty.repo
+
+RUN yum update -y \
+       && yum install -y apisix-${APISIX_VERSION} \
+       && yum clean all \
+       && sed -i 's/PASS_MAX_DAYS\t99999/PASS_MAX_DAYS\t60/g' /etc/login.defs
+
+WORKDIR /usr/local/apisix
+
+ENV 
PATH=$PATH:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin
+
+# forward request and error logs to docker log collector
+RUN ln -sf /dev/stdout /usr/local/apisix/logs/access.log \
+    && ln -sf /dev/stderr /usr/local/apisix/logs/error.log
+
+EXPOSE 9080 9443
+
+COPY ./docker-entrypoint.sh /docker-entrypoint.sh
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+
+CMD ["docker-start"]
+
+STOPSIGNAL SIGQUIT
diff --git a/redhat/docker-entrypoint.sh b/redhat/docker-entrypoint.sh
new file mode 100755
index 0000000..3b6802b
--- /dev/null
+++ b/redhat/docker-entrypoint.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set -eo pipefail
+
+PREFIX=${APISIX_PREFIX:=/usr/local/apisix}
+
+if [[ "$1" == "docker-start" ]]; then
+    if [ "$APISIX_STAND_ALONE" = "true" ]; then
+        cat > ${PREFIX}/conf/config.yaml << _EOC_
+deployment:
+  role: data_plane
+  role_data_plane:
+    config_provider: yaml
+_EOC_
+
+        cat > ${PREFIX}/conf/apisix.yaml << _EOC_
+routes:
+  -
+#END
+_EOC_
+        /usr/bin/apisix init
+    else
+        /usr/bin/apisix init
+        /usr/bin/apisix init_etcd
+    fi
+    
+    exec /usr/local/openresty/bin/openresty -p /usr/local/apisix -g 'daemon 
off;'
+fi
+
+exec "$@"
diff --git a/redhat/yum.repos.d/apache-apisix.repo 
b/redhat/yum.repos.d/apache-apisix.repo
new file mode 100644
index 0000000..2108627
--- /dev/null
+++ b/redhat/yum.repos.d/apache-apisix.repo
@@ -0,0 +1,9 @@
+[release]
+name=Apache APISIX Repository for Redhat
+baseurl=https://repos.apiseven.com/packages/redhat/$releasever/$basearch
+skip_if_unavailable=False
+gpgcheck=1
+repo_gpgcheck=1
+gpgkey=https://repos.apiseven.com/KEYS
+enabled=1
+enabled_metadata=1
diff --git a/redhat/yum.repos.d/openresty.repo 
b/redhat/yum.repos.d/openresty.repo
new file mode 100644
index 0000000..942aa7c
--- /dev/null
+++ b/redhat/yum.repos.d/openresty.repo
@@ -0,0 +1,9 @@
+[openresty]
+name=Official OpenResty Open Source Repository for CentOS
+baseurl=https://openresty.org/package/centos/$releasever/$basearch
+skip_if_unavailable=False
+gpgcheck=1
+repo_gpgcheck=0
+gpgkey=https://openresty.org/package/pubkey.gpg
+enabled=1
+enabled_metadata=1

Reply via email to