DEV Community

Rajarajacholan
Rajarajacholan

Posted on • Edited on

docker compose : top level object must be mapping

I use this command to build:
docker-compose -f docker-compose-new.yml -f Dockerfile-new config and getting top level object must be mapping though I can independentally run build the image using just docker.

my docker file:
`FROM node:18.16.1-slim as dependencies

WORKDIR /app

RUN npm install -g pnpm@8.6.2

RUN pnpm config set store-dir ~/.pnpm-store

COPY pnpm-lock.yaml .
RUN --mount=type=cache,target=~/.pnpm-store pnpm fetch
COPY package.json pnpm-workspace.yaml ./

============================================================================

FROM dependencies as orchestrator-client-builder

COPY client/package.json /app/client/

RUN pnpm install --offline --frozen-lockfile

COPY client/tsconfig.json client/.eslintrc.js /app/client/
COPY client/public /app/client/public
COPY client/src /app/client/src
COPY .env app/client/

RUN pnpm --filter=orchestrator-client build

============================================================================

FROM dependencies as orchestrator-server-builder

COPY server/package.json /app/server/
RUN pnpm install --offline --frozen-lockfile

RUN pnpm --filter=orchestrator-server --prod deploy pruned

COPY server/tsconfig.json server/.eslintrc.js /app/server/
COPY server/src /app/server/src

RUN pnpm --filter=orchestrator-server build

============================================================================

FROM nginx:1.24.0 as orchestrator-client

COPY client/nginx.conf /etc/nginx/conf.d/localhost.conf

COPY --from=orchestrator-client-builder \
/app/client/build /usr/share/nginx/html

============================================================================

FROM node:18.16.1-slim as orchestrator-server

WORKDIR /app

COPY --from=orchestrator-server-builder /app/pruned/node_modules \
/app/node_modules
COPY --from=orchestrator-server-builder /app/server/dist /app/dist

EXPOSE 8000

CMD ["node", "dist/src/index.js"]

============================================================================

`

docker compose file:
`
version: "3.9"
name: orchestrator

services:
db:
image: mongo:5.0.4
container_name: orchestrator-db-container
restart: always
volumes:
- /home/platform_shared_volumes/orchestrator/db:/data/db

cache:
image: redis:6.2.6
container_name: orchestrator-cache-container
restart: always
volumes:
- /home/platform_shared_volumes/orchestrator/cache:/data

base:
build:
context: .
target: dependencies
image: base:${LOCK_HASH:-latest}
profiles:
- donotstart

server:
build:
context: .
target: orchestrator-server
image: orchestrator-server:${SERVER_HASH:-latest}
depends_on:
- db
- cache
container_name: orchestrator-server-container
restart: always
environment:
- JWT_SECRET=WT_VERB_CHECKPOINT_PROGRESS
- PORT=8000
- DB_URL=mongodb://db:27017/test
- CLIENT_URL=https://dev.test.ai/dashboard
- BACKEND_URL=https://dev.test.ai
- REDIS_HOST=cache
- REDIS_PORT=6379
- EMAIL=myself@xyz.com
- PASSWORD=test1234
- MAX_TASK_VERSION=10
- RENEW_API_URL=https://licensing.test.ai/api/licenses
- CONFIG_KEY=WeWereOnBreak
- AGENT_TYPES=single_task,single_task_attended,single_task_unattended,multiple_task,multiple_task_attended,multiple_task_unattended
- SUPPORTED_AGENT_VERSIONS=2.3.7-9.0,2.4.0-10.0,2.4.0-11.0,2.4.0-11.1

frontend:
build:
context: .
target: orchestrator-client
image: orchestrator-client:${SERVER_HASH:-latest}
depends_on:
- server
container_name: orchestrator-client-container
restart: always
ports:
- 3000:80
`

What I am missing here?!

Image of Datadog

The Future of AI, LLMs, and Observability on Google Cloud

Datadog sat down with Google’s Director of AI to discuss the current and future states of AI, ML, and LLMs on Google Cloud. Discover 7 key insights for technical leaders, covering everything from upskilling teams to observability best practices

Learn More

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up