Skip to content

Commit

Permalink
uvのインストールパス変更に対応
Browse files Browse the repository at this point in the history
  • Loading branch information
Phenomer committed Nov 9, 2024
1 parent cdbe642 commit 7141072
Show file tree
Hide file tree
Showing 8 changed files with 147 additions and 5 deletions.
4 changes: 4 additions & 0 deletions Docker/env_vars/text-processor.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SINCRO_HOST=0.0.0.0
SINCRO_PORT=8006
SINCRO_PUBLIC_BIND_HOST=voice-synthesizer
SINCRO_PUBLIC_BIND_PORT=8006
2 changes: 1 addition & 1 deletion Docker/sincro-rtc/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM ubuntu:24.04
ARG SINCRO_USER_ID=sincromisor
ARG SINCRO_USER_DIR=/opt/${SINCRO_USER_ID}

ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${PATH}
ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${SINCRO_USER_DIR}/.local/bin:${PATH}
ENV SINCROMISOR_CONF=/opt/sincromisor/config.yml
ENV SINCROMISOR_WORKER_ID=1

Expand Down
2 changes: 1 addition & 1 deletion Docker/speech-extractor/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM ubuntu:24.04
ARG SINCRO_USER_ID=sincromisor
ARG SINCRO_USER_DIR=/opt/${SINCRO_USER_ID}

ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${PATH}
ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${SINCRO_USER_DIR}/.local/bin:${PATH}
ENV SINCROMISOR_CONF=/opt/sincromisor/config.yml
ENV SINCROMISOR_WORKER_ID=1

Expand Down
2 changes: 1 addition & 1 deletion Docker/speech-recognizer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM nvidia/cuda:12.6.2-cudnn-devel-ubuntu24.04
ARG SINCRO_USER_ID=sincromisor
ARG SINCRO_USER_DIR=/opt/${SINCRO_USER_ID}

ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${PATH}
ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${SINCRO_USER_DIR}/.local/bin:${PATH}
ENV SINCROMISOR_CONF=/opt/sincromisor/config.yml
ENV SINCROMISOR_WORKER_ID=1

Expand Down
111 changes: 111 additions & 0 deletions Docker/text-processor/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
FROM ubuntu:24.04

ARG SINCRO_USER_ID=sincromisor
ARG SINCRO_USER_DIR=/opt/${SINCRO_USER_ID}

ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${SINCRO_USER_DIR}/.local/bin:${PATH}
ENV SINCROMISOR_CONF=/opt/sincromisor/config.yml
ENV SINCROMISOR_WORKER_ID=1

ENV SINCRO_HOST=0.0.0.0
ENV SINCRO_PORT=8006
ENV SINCRO_PUBLIC_BIND_HOST=text-processor
ENV SINCRO_PUBLIC_BIND_PORT=8006
ENV SINCRO_REDIS_HOST=sincro-voice-cache
ENV SINCRO_REDIS_PORT=6379

WORKDIR ${SINCRO_USER_DIR}

RUN --mount=type=cache,target=${SINCRO_USER_DIR}/.cache,uid=1001,gid=1001 \
useradd -u 1001 -s /bin/bash -d ${SINCRO_USER_DIR} ${SINCRO_USER_ID} && \
mkdir ${SINCRO_USER_DIR}/sincromisor-server && \
chown -R ${SINCRO_USER_ID}:${SINCRO_USER_ID} ${SINCRO_USER_DIR}

# curl: uvのインストール
# git: nue-asrのインストール。nue-asrが不要なコンテナでも無いとsyncでコケる
RUN --mount=type=cache,target=/var/lib/apt/lists,sharing=locked \
--mount=type=cache,target=/var/cache/apt/archives,sharing=locked \
apt-get update \
&& apt-get install -y curl git

USER ${SINCRO_USER_ID}
RUN curl -LsSf https://astral.sh/uv/install.sh | sh

#USER root
#RUN --mount=type=cache,target=/var/lib/apt/lists,sharing=locked \
# --mount=type=cache,target=/var/cache/apt/archives,sharing=locked \
# apt-get install -y fdkaac opus-tools

USER ${SINCRO_USER_ID}
COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./pyproject.toml \
./uv.lock \
./.python-version \
./README.md \
${SINCRO_USER_DIR}/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/sincro-config/pyproject.toml \
./sincromisor-server/sincro-config/README.md \
./sincromisor-server/sincro-config/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/sincro-config/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/sincro-models/pyproject.toml \
./sincromisor-server/sincro-models/README.md \
./sincromisor-server/sincro-models/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/sincro-models/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/sincro-rtc/pyproject.toml \
./sincromisor-server/sincro-rtc/README.md \
./sincromisor-server/sincro-rtc/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/sincro-rtc/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/speech-extractor/pyproject.toml \
./sincromisor-server/speech-extractor/README.md \
./sincromisor-server/speech-extractor/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/speech-extractor/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/speech-recognizer/pyproject.toml \
./sincromisor-server/speech-recognizer/README.md \
./sincromisor-server/speech-recognizer/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/speech-recognizer/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/text-processor/pyproject.toml \
./sincromisor-server/text-processor/README.md \
./sincromisor-server/text-processor/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/text-processor/

COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server/voice-synthesizer/pyproject.toml \
./sincromisor-server/voice-synthesizer/README.md \
./sincromisor-server/voice-synthesizer/.python-version \
${SINCRO_USER_DIR}/sincromisor-server/voice-synthesizer/

# 一旦依存ライブラリをsyncする
# sincromisor-serverのモジュールは、空のまま依存関係だけ解決される
RUN --mount=type=cache,target=${SINCRO_USER_DIR}/.cache,uid=1001,gid=1001 \
uv sync --group text-processor

# sincromisor-serverのソースコード一式をここでコピー
COPY --chown=${SINCRO_USER_ID}:${SINCRO_USER_ID} \
./sincromisor-server \
${SINCRO_USER_DIR}/sincromisor-server

# sincromisor-serverのモジュールをビルドし直す
RUN --mount=type=cache,target=${SINCRO_USER_DIR}/.cache,uid=1001,gid=1001 \
uv sync --group text-processor

WORKDIR ${SINCRO_USER_DIR}/sincromisor-server

CMD uv run text-processor/TextProcessorProcess.py \
--host "${SINCRO_HOST}" \
--port "${SINCRO_PORT}" \
--public-bind-host "${SINCRO_PUBLIC_BIND_HOST}" \
--public-bind-port "${SINCRO_PUBLIC_BIND_PORT}" \
--redis-host "${SINCRO_REDIS_HOST}" \
--redis-port "${SINCRO_REDIS_PORT}" \
2 changes: 1 addition & 1 deletion Docker/voice-synthesizer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM ubuntu:24.04
ARG SINCRO_USER_ID=sincromisor
ARG SINCRO_USER_DIR=/opt/${SINCRO_USER_ID}

ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${PATH}
ENV PATH=${SINCRO_USER_DIR}/.cargo/bin:${SINCRO_USER_DIR}/.local/bin:${PATH}
ENV SINCROMISOR_CONF=/opt/sincromisor/config.yml
ENV SINCROMISOR_WORKER_ID=1

Expand Down
25 changes: 25 additions & 0 deletions compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,31 @@ services:
service-initializer:
condition: service_completed_successfully

text-processor:
profiles:
- full
- backend
build:
context: .
dockerfile: ./Docker/text-processor/Dockerfile
image: sincromisor/text-processor:latest
ports:
- 8006:8006/tcp
volumes:
- ./Docker/env_vars/config.yml:/opt/sincromisor/config.yml:ro
networks:
- sincromisor-net
env_file:
- ./Docker/env_vars/text-processor.env
- ./Docker/env_vars/redis.env
deploy:
restart_policy:
condition: on-failure
delay: 10s
depends_on:
service-initializer:
condition: service_completed_successfully

voice-synthesizer:
profiles:
- full
Expand Down
4 changes: 3 additions & 1 deletion install-server-toolchain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ cd "$(dirname "${0}")"

if ! which uv >/dev/null; then
curl -LsSf https://astral.sh/uv/install.sh | sh
. "${HOME}/.cargo/env"
fi

PATH="${HOME}/.local/bin:${PATH}"

uv sync \
--group sincro-rtc \
--group speech-extractor \
--group speech-recognizer \
--group text-processor \
--group voice-synthesizer

0 comments on commit 7141072

Please sign in to comment.