Files
seaweedfs/test/foundationdb/Dockerfile.test
Chris Lu c6b6ea40e6 filer store: add foundationdb (#7178)
* add foundationdb

* Update foundationdb_store.go

* fix

* apply the patch

* avoid panic on error

* address comments

* remove extra data

* address comments

* adds more debug messages

* fix range listing

* delete with prefix range; list with right start key

* fix docker files

* use the more idiomatic FoundationDB KeySelectors

* address comments

* proper errors

* fix API versions

* more efficient

* recursive deletion

* clean up

* clean up

* pagination, one transaction for deletion

* error checking

* Use fdb.Strinc() to compute the lexicographically next string and create a proper range

* fix docker

* Update README.md

* delete in batches

* delete in batches

* fix build

* add foundationdb build

* Updated FoundationDB Version

* Fixed glibc/musl Incompatibility (Alpine → Debian)

* Update container_foundationdb_version.yml

* build SeaweedFS

* build tag

* address comments

* separate transaction

* address comments

* fix build

* empty vs no data

* fixes

* add go test

* Install FoundationDB client libraries

* nil compare
2025-11-19 20:06:57 -08:00

39 lines
1.0 KiB
Docker

# Test environment with Go and FoundationDB support
FROM golang:1.24-bookworm
# Install system dependencies
RUN apt-get update && apt-get install -y \
build-essential \
wget \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Download and install FoundationDB client libraries with checksum verification
RUN set -euo pipefail \
&& FDB_VERSION="7.4.5" \
&& EXPECTED_SHA256="eea6b98cf386a0848655b2e196d18633662a7440a7ee061c10e32153c7e7e112" \
&& PACKAGE="foundationdb-clients_${FDB_VERSION}-1_amd64.deb" \
&& wget -q https://github.com/apple/foundationdb/releases/download/${FDB_VERSION}/${PACKAGE} \
&& echo "${EXPECTED_SHA256} ${PACKAGE}" | sha256sum -c - \
&& (dpkg -i ${PACKAGE} || apt-get install -f -y) \
&& rm ${PACKAGE}
# Set up Go environment for CGO
ENV CGO_ENABLED=1
ENV GOOS=linux
# Set work directory
WORKDIR /app
# Copy source code
COPY . .
# Create directories
RUN mkdir -p /test/results
# Pre-download dependencies
RUN go mod download
# Default command (will be overridden)
CMD ["go", "version"]