argilla-server / Dockerfile
mindchain's picture
Fix auth: use USERNAME/PASSWORD/API_KEY env vars
eb72b0e verified
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