hi I need help? how setup prisma wish my app insid...
# orm-help
d
hi I need help? how setup prisma wish my app inside one docker-compose file??like app its a service what dependet on prisma
u
Hi do you have
docker-compose.yml
to share? Did you create a
Dockerfile
for your app?
m
Copy code
version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.23
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        # managementApiSecret: my-secret
        databases:
          default:
            connector: postgres
            host: postgres
            user: prisma
            password: prisma
            rawAccess: true
            port: 5432
            migrations: true
  postgres:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: prisma
      POSTGRES_PASSWORD: prisma
    volumes:
      - postgres:/var/lib/postgresql/data
volumes:
  postgres:
u
if you then have your own app to add, just do so like:
Copy code
My-app:
        build: ./
        restart: always
        ports:
             - "4000:4000"
With restart always they will keep restarting till it works 🙂
d
ok )) where I need run prisma deploy? at docker file or at docker-compose.yml?
Copy code
version: '3.4'
services:
  template-service:
    build:
      context: .
    command: prisma deploy
    # volumes:
    #   - .:/
    #   - /node_modules
    image: $npm_package_name:$npm_package_version
    ports:
    - 3000:3000
    environment:
      - npm_package_description=$npm_package_description
      - npm_package_name=$npm_package_name
      - npm_package_version=$npm_package_version
    env_file:
      - .env
    depends_on:
      - prisma
  prisma:
    image: prismagraphql/prisma:1.24
    restart: always
    depends_on:
      - mysql
    ports:
    - 4466:4466
    environment:
      PRISMA_CONFIG: |
        port: 4466
        databases:
          default:
            connector: mysql
            host: mysql
            port: 3306
            user: $MYSQL_USER
            password: $MYSQL_PASSWORD
            migrations: true
  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
    volumes:
      - mysql:/var/lib/mysql
volumes:
  mysql:
Copy code
FROM node:latest

COPY package*.json /

COPY ts*.json /

COPY .npmrc /

COPY src/ /src/

COPY prisma/ /prisma/

RUN npm i prisma -g

# RUN prisma deploy

RUN npm i --loglevel=error --ignore-scripts

RUN npm run lint

RUN npm run test

RUN npm run build

RUN npm prune --production

WORKDIR /

EXPOSE 3000

ENTRYPOINT [ "node" ]
CMD [ "-r", "dotenv/config", "dist/index.js" ]
my docker configuration. but how deploy prisma schema?
u
I have the prisma deploy script within my npm start script in the package.json
"start": "npx prisma deploy && npx prisma generate"
In the Dockerfile I only run
RUN npm start
But what to bare in mind is also the
prisma.yml
config. The endpoint won't be on localhost, but on the host set by dockercompose