| FROM hardcoreeng/account:latest AS account |
| FROM hardcoreeng/workspace:latest AS workspace |
| FROM hardcoreeng/transactor:latest AS transactor |
| FROM hardcoreeng/collaborator:latest AS collaborator |
| FROM hardcoreeng/front:latest AS front |
|
|
| FROM ubuntu:22.04 |
|
|
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV PORT=7860 |
|
|
| |
| RUN apt-get update && apt-get install -y curl gnupg supervisor nginx redis-server ca-certificates xz-utils && \ |
| curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg && \ |
| echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list && \ |
| apt-get update && apt-get install -y mongodb-org && \ |
| rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs |
|
|
| |
| RUN curl -fsSL https://binaries.cockroachdb.com/cockroach-v23.1.10.linux-amd64.tgz | tar -xz && \ |
| cp cockroach-v23.1.10.linux-amd64/cockroach /usr/local/bin/ && \ |
| rm -rf cockroach-v23.1.10.linux-amd64 |
|
|
| |
| RUN curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio -o /usr/local/bin/minio && \ |
| chmod +x /usr/local/bin/minio |
|
|
| |
| RUN mkdir -p /app/services/account /app/services/workspace /app/services/transactor \ |
| /app/services/collaborator /app/services/front \ |
| /data/mongodb /data/cockroach /data/minio |
|
|
| |
| COPY --from=account . /app/services/account |
| COPY --from=workspace . /app/services/workspace |
| COPY --from=transactor . /app/services/transactor |
| COPY --from=collaborator . /app/services/collaborator |
| COPY --from=front . /app/services/front |
|
|
| |
| COPY nginx.conf /etc/nginx/sites-available/default |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf |
| COPY entrypoint.sh /app/entrypoint.sh |
| COPY start-service.sh /app/start-service.sh |
| COPY inspect.sh /app/inspect.sh |
|
|
| RUN chmod +x /app/entrypoint.sh /app/start-service.sh /app/inspect.sh && \ |
| useradd -m -u 1000 huly-user || true && \ |
| chown -R 1000:1000 /app /data /var/lib/nginx /var/log/nginx /run |
|
|
| USER 1000 |
| WORKDIR /app |
| EXPOSE 7860 |
|
|
| CMD ["/app/entrypoint.sh"] |