Привет, меня беспокоит, как вызвать 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 получил порты по умолчанию.
Если бы у кого-то были какие-либо предложения, я был бы рад, потому что я не могу понять, в чем проблема.