0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Kotlin > Ktor > DockerでHello world!

Web ApplicationをDockerで動作するようにします。
(クラウドでデプロイするのに使えます)

プロジェクトの作成

Ktor Project Generatorで新規プロジェクトを作成します

※ IntelliJでも新規プロジェクトは作れますが、obsolete(廃止)になっているので非推奨です。

Dockerの作成

Dockerfile

ルートフォルダにDockerfileを作成します

Dockerfile
# Use the official gradle image to create a build artifact.
FROM gradle:6.7 as builder

# Copy local code to the container image.
COPY build.gradle.kts .
COPY gradle.properties .
COPY src ./src

# Build a release artifact.
RUN gradle installDist

FROM openjdk:8-jdk
EXPOSE 8080:8080
RUN mkdir /app
COPY --from=builder /home/gradle/build/install/gradle /app/
WORKDIR /app/bin
CMD ["./gradle"]

debug

試しに起動します

docker build -t my-application .
docker run -p 8080:8080 my-application

docker-compose.yml

ルートフォルダにdocker-compose.ymlを作成します

docker-compose.yml
version: '2'
services:
  web:
    build:
      context: ./
      dockerfile: Dockerfile
    ports:
      - 8080:8080

Docker起動

docker-compose up --build

起動後、↓にアクセスすると、Hello World!が表示されました。
http://0.0.0.0:8080/

スクリーンショット 2021-08-07 23.25.42.png

こんなに簡単にDockerで起動できるなんて感動です

ソース

今回のソースは以下に保存してます。

sugasaki/ktor-docker-hello

以下の情報を参考にしました

Docker | Ktor

docs/docs/serving/samples/hello-world/helloworld-kotlin at mkdocs · knative/docs

Docker - クイックスタート - Ktor

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?