mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-24 07:35:18 +00:00
infra: remove stale dockerfiles from repo (#28243)
deleting the following docker things from monorepo. they aren't currently usable because of old dependencies, and I'd rather avoid people using them / having to maintain them - /docker - this folder has a compose file that spins up postgres,pgvector (separate from postgres and very stale version),mongo instance with default user/password that we've gotten security pings about before. not worth having - also spins up a custom dockerfile with onttotext/graphdb - not even sure what that is - /libs/langchain/dockerfile + dev.dockerfile - super old poetry version, doesn't implement the right thing anymore - .github/workflows/_release_docker.yml, langchain_release_docker.yml - not used anymore, not worth having an alternate release path
This commit is contained in:
parent
161ab736ce
commit
35e6052df5
62
.github/workflows/_release_docker.yml
vendored
62
.github/workflows/_release_docker.yml
vendored
@ -1,62 +0,0 @@
|
|||||||
name: release_docker
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
dockerfile:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
description: "Path to the Dockerfile to build"
|
|
||||||
image:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
description: "Name of the image to build"
|
|
||||||
|
|
||||||
env:
|
|
||||||
TEST_TAG: ${{ inputs.image }}:test
|
|
||||||
LATEST_TAG: ${{ inputs.image }}:latest
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
docker:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Get git tag
|
|
||||||
uses: actions-ecosystem/action-get-latest-tag@v1
|
|
||||||
id: get-latest-tag
|
|
||||||
- name: Set docker tag
|
|
||||||
env:
|
|
||||||
VERSION: ${{ steps.get-latest-tag.outputs.tag }}
|
|
||||||
run: |
|
|
||||||
echo "VERSION_TAG=${{ inputs.image }}:${VERSION#v}" >> $GITHUB_ENV
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- name: Build for Test
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: ${{ inputs.dockerfile }}
|
|
||||||
load: true
|
|
||||||
tags: ${{ env.TEST_TAG }}
|
|
||||||
- name: Test
|
|
||||||
run: |
|
|
||||||
docker run --rm ${{ env.TEST_TAG }} python -c "import langchain"
|
|
||||||
- name: Build and Push to Docker Hub
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: ${{ inputs.dockerfile }}
|
|
||||||
# We can only build for the intersection of platforms supported by
|
|
||||||
# QEMU and base python image, for now build only for
|
|
||||||
# linux/amd64 and linux/arm64
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
tags: ${{ env.LATEST_TAG }},${{ env.VERSION_TAG }}
|
|
||||||
push: true
|
|
14
.github/workflows/langchain_release_docker.yml
vendored
14
.github/workflows/langchain_release_docker.yml
vendored
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
name: docker/langchain/langchain Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI
|
|
||||||
workflow_call: # Allows triggering from another workflow
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
uses: ./.github/workflows/_release_docker.yml
|
|
||||||
with:
|
|
||||||
dockerfile: docker/Dockerfile.base
|
|
||||||
image: langchain/langchain
|
|
||||||
secrets: inherit
|
|
@ -1,3 +0,0 @@
|
|||||||
FROM python:3.11
|
|
||||||
|
|
||||||
RUN pip install langchain
|
|
@ -1,12 +0,0 @@
|
|||||||
# Makefile
|
|
||||||
|
|
||||||
build_graphdb:
|
|
||||||
docker build --tag graphdb ./graphdb
|
|
||||||
|
|
||||||
start_graphdb:
|
|
||||||
docker-compose up -d graphdb
|
|
||||||
|
|
||||||
down:
|
|
||||||
docker-compose down -v --remove-orphans
|
|
||||||
|
|
||||||
.PHONY: build_graphdb start_graphdb down
|
|
@ -1,84 +0,0 @@
|
|||||||
# docker-compose to make it easier to spin up integration tests.
|
|
||||||
# Services should use NON standard ports to avoid collision with
|
|
||||||
# any existing services that might be used for development.
|
|
||||||
# ATTENTION: When adding a service below use a non-standard port
|
|
||||||
# increment by one from the preceding port.
|
|
||||||
# For credentials always use `langchain` and `langchain` for the
|
|
||||||
# username and password.
|
|
||||||
version: "3"
|
|
||||||
name: langchain-tests
|
|
||||||
|
|
||||||
services:
|
|
||||||
redis:
|
|
||||||
image: redis/redis-stack-server:latest
|
|
||||||
# We use non standard ports since
|
|
||||||
# these instances are used for testing
|
|
||||||
# and users may already have existing
|
|
||||||
# redis instances set up locally
|
|
||||||
# for other projects
|
|
||||||
ports:
|
|
||||||
- "6020:6379"
|
|
||||||
volumes:
|
|
||||||
- ./redis-volume:/data
|
|
||||||
graphdb:
|
|
||||||
image: graphdb
|
|
||||||
ports:
|
|
||||||
- "6021:7200"
|
|
||||||
mongo:
|
|
||||||
image: mongo:latest
|
|
||||||
container_name: mongo_container
|
|
||||||
ports:
|
|
||||||
- "6022:27017"
|
|
||||||
environment:
|
|
||||||
MONGO_INITDB_ROOT_USERNAME: langchain
|
|
||||||
MONGO_INITDB_ROOT_PASSWORD: langchain
|
|
||||||
postgres:
|
|
||||||
image: postgres:16
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: langchain
|
|
||||||
POSTGRES_USER: langchain
|
|
||||||
POSTGRES_PASSWORD: langchain
|
|
||||||
ports:
|
|
||||||
- "6023:5432"
|
|
||||||
command: |
|
|
||||||
postgres -c log_statement=all
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD-SHELL",
|
|
||||||
"psql postgresql://langchain:langchain@localhost/langchain --command 'SELECT 1;' || exit 1",
|
|
||||||
]
|
|
||||||
interval: 5s
|
|
||||||
retries: 60
|
|
||||||
volumes:
|
|
||||||
- postgres_data:/var/lib/postgresql/data
|
|
||||||
pgvector:
|
|
||||||
# postgres with the pgvector extension
|
|
||||||
image: ankane/pgvector
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: langchain
|
|
||||||
POSTGRES_USER: langchain
|
|
||||||
POSTGRES_PASSWORD: langchain
|
|
||||||
ports:
|
|
||||||
- "6024:5432"
|
|
||||||
command: |
|
|
||||||
postgres -c log_statement=all
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD-SHELL",
|
|
||||||
"psql postgresql://langchain:langchain@localhost/langchain --command 'SELECT 1;' || exit 1",
|
|
||||||
]
|
|
||||||
interval: 5s
|
|
||||||
retries: 60
|
|
||||||
volumes:
|
|
||||||
- postgres_data_pgvector:/var/lib/postgresql/data
|
|
||||||
vdms:
|
|
||||||
image: intellabs/vdms:latest
|
|
||||||
container_name: vdms_container
|
|
||||||
ports:
|
|
||||||
- "6025:55555"
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
postgres_data:
|
|
||||||
postgres_data_pgvector:
|
|
@ -1,5 +0,0 @@
|
|||||||
FROM ontotext/graphdb:10.5.1
|
|
||||||
RUN mkdir -p /opt/graphdb/dist/data/repositories/langchain
|
|
||||||
COPY config.ttl /opt/graphdb/dist/data/repositories/langchain/
|
|
||||||
COPY graphdb_create.sh /run.sh
|
|
||||||
ENTRYPOINT bash /run.sh
|
|
@ -1,46 +0,0 @@
|
|||||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
|
|
||||||
@prefix rep: <http://www.openrdf.org/config/repository#>.
|
|
||||||
@prefix sr: <http://www.openrdf.org/config/repository/sail#>.
|
|
||||||
@prefix sail: <http://www.openrdf.org/config/sail#>.
|
|
||||||
@prefix graphdb: <http://www.ontotext.com/config/graphdb#>.
|
|
||||||
|
|
||||||
[] a rep:Repository ;
|
|
||||||
rep:repositoryID "langchain" ;
|
|
||||||
rdfs:label "" ;
|
|
||||||
rep:repositoryImpl [
|
|
||||||
rep:repositoryType "graphdb:SailRepository" ;
|
|
||||||
sr:sailImpl [
|
|
||||||
sail:sailType "graphdb:Sail" ;
|
|
||||||
|
|
||||||
graphdb:read-only "false" ;
|
|
||||||
|
|
||||||
# Inference and Validation
|
|
||||||
graphdb:ruleset "empty" ;
|
|
||||||
graphdb:disable-sameAs "true" ;
|
|
||||||
graphdb:check-for-inconsistencies "false" ;
|
|
||||||
|
|
||||||
# Indexing
|
|
||||||
graphdb:entity-id-size "32" ;
|
|
||||||
graphdb:enable-context-index "false" ;
|
|
||||||
graphdb:enablePredicateList "true" ;
|
|
||||||
graphdb:enable-fts-index "false" ;
|
|
||||||
graphdb:fts-indexes ("default" "iri") ;
|
|
||||||
graphdb:fts-string-literals-index "default" ;
|
|
||||||
graphdb:fts-iris-index "none" ;
|
|
||||||
|
|
||||||
# Queries and Updates
|
|
||||||
graphdb:query-timeout "0" ;
|
|
||||||
graphdb:throw-QueryEvaluationException-on-timeout "false" ;
|
|
||||||
graphdb:query-limit-results "0" ;
|
|
||||||
|
|
||||||
# Settable in the file but otherwise hidden in the UI and in the RDF4J console
|
|
||||||
graphdb:base-URL "http://example.org/owlim#" ;
|
|
||||||
graphdb:defaultNS "" ;
|
|
||||||
graphdb:imports "" ;
|
|
||||||
graphdb:repository-type "file-repository" ;
|
|
||||||
graphdb:storage-folder "storage" ;
|
|
||||||
graphdb:entity-index-size "10000000" ;
|
|
||||||
graphdb:in-memory-literal-properties "true" ;
|
|
||||||
graphdb:enable-literal-index "true" ;
|
|
||||||
]
|
|
||||||
].
|
|
@ -1,28 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
REPOSITORY_ID="langchain"
|
|
||||||
GRAPHDB_URI="http://localhost:7200/"
|
|
||||||
|
|
||||||
echo -e "\nUsing GraphDB: ${GRAPHDB_URI}"
|
|
||||||
|
|
||||||
function startGraphDB {
|
|
||||||
echo -e "\nStarting GraphDB..."
|
|
||||||
exec /opt/graphdb/dist/bin/graphdb
|
|
||||||
}
|
|
||||||
|
|
||||||
function waitGraphDBStart {
|
|
||||||
echo -e "\nWaiting GraphDB to start..."
|
|
||||||
for _ in $(seq 1 5); do
|
|
||||||
CHECK_RES=$(curl --silent --write-out '%{http_code}' --output /dev/null ${GRAPHDB_URI}/rest/repositories)
|
|
||||||
if [ "${CHECK_RES}" = '200' ]; then
|
|
||||||
echo -e "\nUp and running"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 30s
|
|
||||||
echo "CHECK_RES: ${CHECK_RES}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
startGraphDB &
|
|
||||||
waitGraphDBStart
|
|
||||||
wait
|
|
@ -1,48 +0,0 @@
|
|||||||
# This is a Dockerfile for running unit tests
|
|
||||||
|
|
||||||
ARG POETRY_HOME=/opt/poetry
|
|
||||||
|
|
||||||
# Use the Python base image
|
|
||||||
FROM python:3.11.2-bullseye AS builder
|
|
||||||
|
|
||||||
# Define the version of Poetry to install (default is 1.4.2)
|
|
||||||
ARG POETRY_VERSION=1.4.2
|
|
||||||
|
|
||||||
# Define the directory to install Poetry to (default is /opt/poetry)
|
|
||||||
ARG POETRY_HOME
|
|
||||||
|
|
||||||
# Create a Python virtual environment for Poetry and install it
|
|
||||||
RUN python3 -m venv ${POETRY_HOME} && \
|
|
||||||
$POETRY_HOME/bin/pip install --upgrade pip && \
|
|
||||||
$POETRY_HOME/bin/pip install poetry==${POETRY_VERSION}
|
|
||||||
|
|
||||||
# Test if Poetry is installed in the expected path
|
|
||||||
RUN echo "Poetry version:" && $POETRY_HOME/bin/poetry --version
|
|
||||||
|
|
||||||
# Set the working directory for the app
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Use a multi-stage build to install dependencies
|
|
||||||
FROM builder AS dependencies
|
|
||||||
|
|
||||||
ARG POETRY_HOME
|
|
||||||
|
|
||||||
# Copy only the dependency files for installation
|
|
||||||
COPY pyproject.toml poetry.lock poetry.toml ./
|
|
||||||
|
|
||||||
# Install the Poetry dependencies (this layer will be cached as long as the dependencies don't change)
|
|
||||||
RUN $POETRY_HOME/bin/poetry install --no-interaction --no-ansi --with test
|
|
||||||
|
|
||||||
# Use a multi-stage build to run tests
|
|
||||||
FROM dependencies AS tests
|
|
||||||
|
|
||||||
# Copy the rest of the app source code (this layer will be invalidated and rebuilt whenever the source code changes)
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
RUN /opt/poetry/bin/poetry install --no-interaction --no-ansi --with test
|
|
||||||
|
|
||||||
# Set the entrypoint to run tests using Poetry
|
|
||||||
ENTRYPOINT ["/opt/poetry/bin/poetry", "run", "pytest"]
|
|
||||||
|
|
||||||
# Set the default command to run all unit tests
|
|
||||||
CMD ["tests/unit_tests"]
|
|
@ -1,63 +0,0 @@
|
|||||||
# This is a Dockerfile for the Development Container
|
|
||||||
|
|
||||||
# Use the Python base image
|
|
||||||
ARG VARIANT="3.11-bullseye"
|
|
||||||
FROM mcr.microsoft.com/devcontainers/python:0-${VARIANT} AS langchain-dev-base
|
|
||||||
|
|
||||||
USER vscode
|
|
||||||
|
|
||||||
# Define the version of Poetry to install (default is 1.4.2)
|
|
||||||
# Define the directory of python virtual environment
|
|
||||||
ARG PYTHON_VIRTUALENV_HOME=/home/vscode/langchain-py-env \
|
|
||||||
POETRY_VERSION=1.3.2
|
|
||||||
|
|
||||||
ENV POETRY_VIRTUALENVS_IN_PROJECT=false \
|
|
||||||
POETRY_NO_INTERACTION=true
|
|
||||||
|
|
||||||
# Install Poetry outside of the v`irtual environment to avoid conflicts
|
|
||||||
RUN python3 -m pip install --user pipx && \
|
|
||||||
python3 -m pipx ensurepath && \
|
|
||||||
pipx install poetry==${POETRY_VERSION}
|
|
||||||
|
|
||||||
# Create a Python virtual environment for the project
|
|
||||||
RUN python3 -m venv ${PYTHON_VIRTUALENV_HOME} && \
|
|
||||||
$PYTHON_VIRTUALENV_HOME/bin/pip install --upgrade pip
|
|
||||||
|
|
||||||
ENV PATH="$PYTHON_VIRTUALENV_HOME/bin:$PATH" \
|
|
||||||
VIRTUAL_ENV=$PYTHON_VIRTUALENV_HOME
|
|
||||||
|
|
||||||
# Setup for bash
|
|
||||||
RUN poetry completions bash >> /home/vscode/.bash_completion && \
|
|
||||||
echo "export PATH=$PYTHON_VIRTUALENV_HOME/bin:$PATH" >> ~/.bashrc
|
|
||||||
|
|
||||||
# Set the working directory for the app
|
|
||||||
WORKDIR /workspaces/langchain
|
|
||||||
|
|
||||||
# Use a multi-stage build to install dependencies
|
|
||||||
FROM langchain-dev-base AS langchain-dev-dependencies
|
|
||||||
|
|
||||||
ARG PYTHON_VIRTUALENV_HOME
|
|
||||||
|
|
||||||
# Copy only the dependency files for installation
|
|
||||||
COPY libs/langchain/pyproject.toml libs/langchain/poetry.toml libs/langchain/poetry.lock ./
|
|
||||||
|
|
||||||
# Copy the langchain library for installation
|
|
||||||
COPY libs/langchain/ libs/langchain/
|
|
||||||
|
|
||||||
# Copy the core library for installation
|
|
||||||
COPY libs/core ../core
|
|
||||||
|
|
||||||
# Copy the community library for installation
|
|
||||||
COPY libs/community/ ../community/
|
|
||||||
|
|
||||||
# Copy the text-splitters library for installation
|
|
||||||
COPY libs/text-splitters/ ../text-splitters/
|
|
||||||
|
|
||||||
# Copy the partners library for installation
|
|
||||||
COPY libs/partners ../partners/
|
|
||||||
|
|
||||||
# Copy the standard-tests library for installation
|
|
||||||
COPY libs/standard-tests ../standard-tests/
|
|
||||||
|
|
||||||
# Install the Poetry dependencies (this layer will be cached as long as the dependencies don't change)
|
|
||||||
RUN poetry install --no-interaction --no-ansi --with dev,test,docs
|
|
Loading…
Reference in New Issue
Block a user