feat(apisix): add Cloudron package
- Implements Apache APISIX packaging for Cloudron platform. - Includes Dockerfile, CloudronManifest.json, and start.sh. - Configured to use Cloudron's etcd addon. 🤖 Generated with Gemini CLI Co-Authored-By: Gemini <noreply@google.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#
|
||||
# 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 ubuntu:24.04
|
||||
|
||||
RUN apt update && export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt install -y sudo git make gcc tini
|
||||
|
||||
COPY Makefile .requirements apisix-master-0.rockspec ./
|
||||
COPY utils/install-dependencies.sh utils/linux-install-luarocks.sh utils/
|
||||
|
||||
RUN make install-runtime
|
||||
|
||||
RUN cpanm --notest Test::Nginx IPC::Run > build.log 2>&1 || (cat build.log && exit 1)
|
||||
|
||||
ARG ETCD_VER=v3.5.17
|
||||
ARG BUILDARCH
|
||||
RUN curl -L https://github.com/etcd-io/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-${BUILDARCH}.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-${BUILDARCH}.tar.gz \
|
||||
&& mkdir -p /tmp/etcd-download-test \
|
||||
&& tar xzvf /tmp/etcd-${ETCD_VER}-linux-${BUILDARCH}.tar.gz -C /tmp/etcd-download-test --strip-components=1 \
|
||||
&& mv /tmp/etcd-download-test/etcdctl /usr/bin \
|
||||
&& rm -rf /tmp/*
|
||||
|
||||
ENTRYPOINT [ "tini", "--" ]
|
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "APISIX",
|
||||
"dockerComposeFile": ["docker-compose.yml"],
|
||||
"service": "apisix",
|
||||
"workspaceFolder": "/workspace",
|
||||
"privileged": true,
|
||||
"postCreateCommand": "bash -c 'cd /workspace && rm -rf test-nginx && git config --global --add safe.directory /workspace && git submodule update --init --recursive && git clone https://github.com/openresty/test-nginx.git --depth 1 --single-branch -b master && make deps'",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": ["ms-vscode.makefile-tools", "ms-azuretools.vscode-docker", "sumneko.lua"]
|
||||
}
|
||||
},
|
||||
"forwardPorts": [9080, 9180, 2379]
|
||||
}
|
@@ -0,0 +1,37 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
services:
|
||||
apisix:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: .devcontainer/Dockerfile
|
||||
command: sleep infinity
|
||||
volumes:
|
||||
- ..:/workspace:cached
|
||||
network_mode: service:etcd
|
||||
etcd:
|
||||
image: bitnami/etcd:3.5
|
||||
volumes:
|
||||
- etcd_data:/bitnami/etcd
|
||||
environment:
|
||||
ALLOW_NONE_AUTHENTICATION: "yes"
|
||||
ETCD_ADVERTISE_CLIENT_URLS: "http://127.0.0.1:2379"
|
||||
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
|
||||
|
||||
volumes:
|
||||
etcd_data:
|
Reference in New Issue
Block a user