You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by rl...@apache.org on 2023/09/24 18:37:41 UTC
[celix] 01/01: Add dev container with Celix dependencies
This is an automated email from the ASF dual-hosted git repository.
rlenferink pushed a commit to branch feature/add-dev-container
in repository https://gitbox.apache.org/repos/asf/celix.git
commit 55ad18a1aeeb77e1bbc2f26f1fda1bb1411b0f91
Author: Roy Lenferink <le...@gmail.com>
AuthorDate: Sun Sep 24 20:37:28 2023 +0200
Add dev container with Celix dependencies
This allows building and developing of Celix by using this pre-built container
---
container/Containerfile.ubuntu | 45 ++++++++++++++++++++++++++++++++++
container/start-ubuntu-container.sh | 37 ++++++++++++++++++++++++++++
container/support-scripts/build-all.sh | 34 +++++++++++++++++++++++++
3 files changed, 116 insertions(+)
diff --git a/container/Containerfile.ubuntu b/container/Containerfile.ubuntu
new file mode 100644
index 00000000..00ff029f
--- /dev/null
+++ b/container/Containerfile.ubuntu
@@ -0,0 +1,45 @@
+# 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 docker.io/library/ubuntu:22.04@sha256:b492494d8e0113c4ad3fe4528a4b5ff89faa5331f7d52c5c138196f69ce176a6
+
+# Install build & Celix dependencies
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ # Build dependencies \
+ build-essential \
+ ccache \
+ cmake \
+ curl \
+ default-jdk \
+ git \
+ python3 \
+ # Celix dependencies \
+ civetweb \
+ libavahi-compat-libdnssd-dev \
+ libcivetweb-dev \
+ libcpputest-dev \
+ libcurl4-openssl-dev \
+ libczmq-dev \
+ libffi-dev \
+ libjansson-dev \
+ libxml2-dev \
+ libzip-dev \
+ rapidjson-dev \
+ uuid-dev && \
+ apt-get clean
+
diff --git a/container/start-ubuntu-container.sh b/container/start-ubuntu-container.sh
new file mode 100755
index 00000000..118673ad
--- /dev/null
+++ b/container/start-ubuntu-container.sh
@@ -0,0 +1,37 @@
+#!/bin/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.
+#
+# Start a Celix dev container with all needed dependencies
+# pre-installed already.
+
+SCRIPT_LOCATION=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
+CELIX_REPO_ROOT=$(realpath "${SCRIPT_LOCATION}/..")
+
+# Start a container with all the Celix dependencies pre-installed
+# --privileged to allow the unit tests to change thread priorities
+# --net=host is used to allow e.g. communication with etcd
+# --volume & --workdir are set to the Celix repo root (to allow building and editing of the Celix repo)
+# --security-opt disables SELinux for the container
+podman run -it --rm --privileged \
+ --net=host \
+ --volume "${CELIX_REPO_ROOT}":"${CELIX_REPO_ROOT}" \
+ --workdir "${CELIX_REPO_ROOT}" \
+ --security-opt label=disable \
+ apache/celix-dev:2.4.0-ubuntu
+
diff --git a/container/support-scripts/build-all.sh b/container/support-scripts/build-all.sh
new file mode 100755
index 00000000..3b083c01
--- /dev/null
+++ b/container/support-scripts/build-all.sh
@@ -0,0 +1,34 @@
+#!/bin/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.
+
+BUILD_TYPE=${1:-Debug}
+
+cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
+ -DCMAKE_INSTALL_PREFIX=../celix_install \
+ -DBUILD_EXPERIMENTAL=ON \
+ -DENABLE_TESTING=ON \
+ -DENABLE_TESTING_DEPENDENCY_MANAGER_FOR_CXX11=ON \
+ -DENABLE_TESTING_FOR_CXX14=ON \
+ -DENABLE_TESTING_ON_CI=ON \
+ -DRSA_JSON_RPC=ON \
+ -DRSA_SHM=ON \
+ -DRSA_REMOTE_SERVICE_ADMIN_SHM_V2=ON \
+ -DSHELL_BONJOUR=ON \
+ ..
+