FROM opensearchproject/opensearch:2.11.0 AS opensearch FROM redis:7-alpine AS redis FROM argilla/argilla-server:latest USER root RUN apt-get update && apt-get install -y procps curl redis-server && rm -rf /var/lib/apt/lists/* COPY --from=opensearch /usr/share/opensearch /opt/opensearch RUN useradd -m -s /bin/bash opensearch || true \ && mkdir -p /var/lib/argilla \ && chown -R opensearch:opensearch /opt/opensearch # Disable OpenSearch security RUN echo "plugins.security.disabled: true" >> /opt/opensearch/config/opensearch.yml \ && echo "discovery.type: single-node" >> /opt/opensearch/config/opensearch.yml RUN sed -i 's/-Xms1g/-Xms256m/g' /opt/opensearch/config/jvm.options \ && sed -i 's/-Xmx1g/-Xmx256m/g' /opt/opensearch/config/jvm.options # Argilla server configuration ENV DISABLE_SECURITY_PLUGIN=true ENV ARGILLA_ELASTICSEARCH=http://127.0.0.1:9200 ENV ARGILLA_SEARCH_ENGINE=opensearch ENV ARGILLA_REDIS_URL=redis://127.0.0.1:6379/0 # User credentials (correct variable names!) ENV USERNAME=argilla ENV PASSWORD=12345678 ENV API_KEY=argilla.apikey ENV WORKSPACE=argilla EXPOSE 7860 CMD redis-server --daemonize yes && \ cd /opt/opensearch && su opensearch -c "./bin/opensearch -d" && \ echo "Waiting for OpenSearch..." && \ for i in $(seq 1 60); do \ curl -s http://127.0.0.1:9200 > /dev/null 2>&1 && echo "OpenSearch ready!" && break; \ sleep 3; \ done && \ python -m argilla_server database migrate && \ if [ -n "$USERNAME" ] && [ -n "$PASSWORD" ]; then \ cmd_args="--first-name $USERNAME --username $USERNAME --password $PASSWORD --role owner"; \ if [ -n "$API_KEY" ]; then cmd_args="$cmd_args --api-key $API_KEY"; fi; \ if [ -n "$WORKSPACE" ]; then cmd_args="$cmd_args --workspace $WORKSPACE"; fi; \ python -m argilla_server database users create $cmd_args; \ fi && \ python -m argilla_server start --host 0.0.0.0 --port 7860