Docker как вызвать mongodb из моего приложения ktor - PullRequest
0 голосов
/ 17 апреля 2020

Привет, меня беспокоит, как вызвать mongoDB из моего приложения ktor внутри контейнера docker. Когда я запускаю приложение локально, как intellij, остальной вызов работает.

Это dockerfile моего приложения ktor

FROM openjdk:8-jre-alpine

ENV APPLICATION_USER ktor
RUN adduser -D -g '' $APPLICATION_USER

RUN mkdir /app
RUN chown -R $APPLICATION_USER /app

USER $APPLICATION_USER

COPY ./build/libs/myapp.jar /app/myapp.jar
WORKDIR /app

CMD ["java", "-server", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-XX:InitialRAMFraction=2", "-XX:MinRAMFraction=2", "-XX:MaxRAMFraction=2", "-XX:+UseG1GC", "-XX:MaxGCPauseMillis=100", "-XX:+UseStringDeduplication", "-jar", "myapp.jar"]

, и это функция, где завершается почтовый вызов

post("/") {
  try {
     var postParams =  call.receive<Request>()
     val id = postParams.id
     var response 
     if(id != null) {
       val mongo = MongoClient()
       val db = mongo.getDatabase("col")
       val table = db.getCollection("items")

       val searchQuery = BasicDBObject();
       searchQuery.put("_id", id);
       val cursor = table.find(searchQuery).cursor();
       response = cursor?.next()
       call.respond(response)
....

Контейнер mon go получил порты по умолчанию.

Если бы у кого-то были какие-либо предложения, я был бы рад, потому что я не могу понять, в чем проблема.

...