You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2022/01/25 19:42:21 UTC

[couchdb-erlfdb] branch fix-devcontainer-package-retrieval created (now 1c1c486)

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

kocolosk pushed a change to branch fix-devcontainer-package-retrieval
in repository https://gitbox.apache.org/repos/asf/couchdb-erlfdb.git.


      at 1c1c486  Fix issues caused by foundationdb.org breakage

This branch includes the following new commits:

     new 1c1c486  Fix issues caused by foundationdb.org breakage

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[couchdb-erlfdb] 01/01: Fix issues caused by foundationdb.org breakage

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch fix-devcontainer-package-retrieval
in repository https://gitbox.apache.org/repos/asf/couchdb-erlfdb.git

commit 1c1c4860ea16dd68348ef17cf32a481a0ddf0ee3
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Tue Jan 25 14:39:05 2022 -0500

    Fix issues caused by foundationdb.org breakage
    
    The foundationdb.org collapse and subsequent move to GitHub created a
    bit of fallout:
    
    * Update package URLs from foundationdb.org to github.com
    
    * Install Python package via pip as it's not published on GitHub
    
    * Bump version to 6.3.23 as pypi has limited release selection
    
    * Vendor the create_cluster_file.bash script (FDB elected to remove it
      from their published container builds).
---
 .devcontainer/Dockerfile               | 23 ++++++---------
 .devcontainer/create_cluster_file.bash | 52 ++++++++++++++++++++++++++++++++++
 .devcontainer/docker-compose.yaml      |  4 +--
 3 files changed, 62 insertions(+), 17 deletions(-)

diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 2dec11e..fb9e43c 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -13,23 +13,11 @@ ARG FDB_VERSION
 
 # Install the FDB client used underneath erlfdb
 RUN set -ex; \
-    wget https://www.foundationdb.org/downloads/${FDB_VERSION}/ubuntu/installers/foundationdb-clients_${FDB_VERSION}-1_amd64.deb; \
+    wget https://github.com/apple/foundationdb/releases/download/${FDB_VERSION}/foundationdb-clients_${FDB_VERSION}-1_amd64.deb; \
     mkdir /var/lib/foundationdb; \
     dpkg -i foundationdb-clients_${FDB_VERSION}-1_amd64.deb; \
     rm foundationdb-clients_${FDB_VERSION}-1_amd64.deb
 
-# FDB bindings tester uses the Python bindings; install them from a
-# package to avoid building FDB from source
-RUN set -ex; \
-    wget https://www.foundationdb.org/downloads/${FDB_VERSION}/bindings/python/foundationdb-${FDB_VERSION}.tar.gz; \
-    tar zxf foundationdb-${FDB_VERSION}.tar.gz; \
-    cd foundationdb-${FDB_VERSION}; \
-    if [ "${FDB_VERSION}" < "6.3.0" ]; then \
-        python setup.py install; \
-    else \
-        python3 setup.py install; \
-    fi; \
-    rm ../foundationdb-${FDB_VERSION}.tar.gz
 
 # Clone FoundationDB repo to retrieve bindings tester package and
 # patch it to support erlfdb
@@ -43,9 +31,14 @@ RUN set -ex; \
 RUN set -ex; \
     apt-get update; \
     apt-get install -y --no-install-recommends \
-        dnsutils; \
+        dnsutils \
+        python3-setuptools \
+        python3-pip; \
     rm -rf /var/lib/apt/lists/*
 
-COPY --from=fdb /var/fdb/scripts/create_cluster_file.bash /usr/local/bin/
+# FDB bindings tester uses the Python bindings
+RUN pip3 install foundationdb==${FDB_VERSION}
+
+COPY create_cluster_file.bash /usr/local/bin/
 
 CMD sleep infinity
diff --git a/.devcontainer/create_cluster_file.bash b/.devcontainer/create_cluster_file.bash
new file mode 100644
index 0000000..73b9b12
--- /dev/null
+++ b/.devcontainer/create_cluster_file.bash
@@ -0,0 +1,52 @@
+#! /bin/bash
+
+#
+# create_cluster_file.bash
+#
+# This source file is part of the FoundationDB open source project
+#
+# Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
+#
+# Licensed 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.
+#
+
+# This script creates a cluster file for a server or client.
+# This takes the cluster file path from the FDB_CLUSTER_FILE
+# environment variable, with a default of /etc/foundationdb/fdb.cluster
+#
+# The name of the coordinator must be defined in the FDB_COORDINATOR environment
+# variable, and it must be a name that can be resolved through DNS.
+
+function create_cluster_file() {
+	FDB_CLUSTER_FILE=${FDB_CLUSTER_FILE:-/etc/foundationdb/fdb.cluster}
+	mkdir -p $(dirname $FDB_CLUSTER_FILE)
+
+	if [[ -n "$FDB_CLUSTER_FILE_CONTENTS" ]]; then
+		echo "$FDB_CLUSTER_FILE_CONTENTS" > $FDB_CLUSTER_FILE
+	elif [[ -n $FDB_COORDINATOR ]]; then
+		coordinator_ip=$(dig +short $FDB_COORDINATOR)
+		if [[ -z "$coordinator_ip" ]]; then
+			echo "Failed to look up coordinator address for $FDB_COORDINATOR" 1>&2
+			exit 1
+		fi
+		coordinator_port=${FDB_COORDINATOR_PORT:-4500}
+		echo "docker:docker@$coordinator_ip:$coordinator_port" > $FDB_CLUSTER_FILE
+	else
+		echo "FDB_COORDINATOR environment variable not defined" 1>&2
+		exit 1
+	fi
+}
+
+if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
+	create_cluster_file "$@"
+fi
\ No newline at end of file
diff --git a/.devcontainer/docker-compose.yaml b/.devcontainer/docker-compose.yaml
index 79a310b..dceb276 100644
--- a/.devcontainer/docker-compose.yaml
+++ b/.devcontainer/docker-compose.yaml
@@ -7,7 +7,7 @@ services:
         ERLANG_VERSION: "24"
 
         # This should always match the value in fdb.image
-        FDB_VERSION: "6.2.30"
+        FDB_VERSION: "6.3.23"
 
     environment:
       # This needs to match the name of the FoundationDB service below
@@ -28,4 +28,4 @@ services:
     network_mode: service:fdb
 
   fdb:
-    image: foundationdb/foundationdb:6.2.30
+    image: foundationdb/foundationdb:6.3.23