From ef33698c330371708cf91745c1ef30c723e9569d Mon Sep 17 00:00:00 2001 From: Adam <897017+asemy@users.noreply.github.com> Date: Fri, 22 Oct 2021 00:07:26 +0200 Subject: [PATCH] moving docker stuff around, --- modules/kafka/build.gradle.kts | 3 - modules/kafka/docker-compose.yml | 14 ----- modules/mod/build.gradle.kts | 11 ++-- modules/mod/infra/.env | 1 + .../resources/server => infra}/.gitignore | 0 modules/mod/infra/docker-compose.yml | 56 +++++++++++++++++++ modules/{kafka => mod/infra}/kafka.Dockerfile | 29 ++++++++-- .../test/resources/server/docker-compose.yml | 21 ------- settings.gradle.kts | 2 +- 9 files changed, 88 insertions(+), 49 deletions(-) delete mode 100644 modules/kafka/build.gradle.kts delete mode 100644 modules/kafka/docker-compose.yml create mode 100644 modules/mod/infra/.env rename modules/mod/{src/test/resources/server => infra}/.gitignore (100%) create mode 100644 modules/mod/infra/docker-compose.yml rename modules/{kafka => mod/infra}/kafka.Dockerfile (62%) delete mode 100644 modules/mod/src/test/resources/server/docker-compose.yml diff --git a/modules/kafka/build.gradle.kts b/modules/kafka/build.gradle.kts deleted file mode 100644 index 142fb17..0000000 --- a/modules/kafka/build.gradle.kts +++ /dev/null @@ -1,3 +0,0 @@ -plugins { - id("dev.adamko.factoriowebmap.archetype.base") -} diff --git a/modules/kafka/docker-compose.yml b/modules/kafka/docker-compose.yml deleted file mode 100644 index d7ab38b..0000000 --- a/modules/kafka/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -version: "3.9" - -services: - - kafka: - image: dev-adamko/kafka - container_name: "kafka-factorio" - build: - dockerfile: "kafka.Dockerfile" - args: - KAFKA_DL_URL: "https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz" - ports: - - "9092:9092" - - "9093:9093" diff --git a/modules/mod/build.gradle.kts b/modules/mod/build.gradle.kts index 41c79e4..78ab75e 100644 --- a/modules/mod/build.gradle.kts +++ b/modules/mod/build.gradle.kts @@ -1,5 +1,4 @@ import com.github.gradle.node.npm.task.NpmTask -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { @@ -88,7 +87,7 @@ val copyModToServerTask = tasks.register("copyModToServer") { dependsOn(modPackageTask) from(modPackageTask) - into(layout.projectDirectory.dir("src/test/resources/server/data/mods").asFile) + into(layout.projectDirectory.dir("infra/factorio-server/data/mods").asFile) } val serverStopTask = tasks.register("dockerStop") { @@ -96,8 +95,8 @@ val serverStopTask = tasks.register("dockerStop") { mustRunAfter(copyModToServerTask) - workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile - commandLine = parseSpaceSeparatedArgs("docker-compose stop") + workingDir = layout.projectDirectory.dir("infra/factorio-server").asFile + commandLine = parseSpaceSeparatedArgs("docker-compose stop factorio-server") } val serverUpTask = tasks.register("dockerUp") { @@ -106,8 +105,8 @@ val serverUpTask = tasks.register("dockerUp") { mustRunAfter(copyModToServerTask) dependsOn(serverStopTask) - workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile - commandLine = parseSpaceSeparatedArgs("docker-compose up -d") + workingDir = layout.projectDirectory.dir("infra/factorio-server").asFile + commandLine = parseSpaceSeparatedArgs("docker-compose up -d factorio-server") } //val serverRestartTask = tasks.register("dockerRestart") { diff --git a/modules/mod/infra/.env b/modules/mod/infra/.env new file mode 100644 index 0000000..35ed112 --- /dev/null +++ b/modules/mod/infra/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=factorio-infra diff --git a/modules/mod/src/test/resources/server/.gitignore b/modules/mod/infra/.gitignore similarity index 100% rename from modules/mod/src/test/resources/server/.gitignore rename to modules/mod/infra/.gitignore diff --git a/modules/mod/infra/docker-compose.yml b/modules/mod/infra/docker-compose.yml new file mode 100644 index 0000000..98146d7 --- /dev/null +++ b/modules/mod/infra/docker-compose.yml @@ -0,0 +1,56 @@ +version: "3.9" + +services: + + factorio-server: + image: factoriotools/factorio:1.1.42 + # logging: + # driver: "json-file" + container_name: "factorio" + restart: "unless-stopped" + ports: + - "34197:34197/udp" # factorio + - "27015:27015/tcp" # rcon + volumes: + - "./data:/factorio" +# logging: +# driver: "mickyg/kafka-logdriver:latest" +# options: +# KAFKA_BROKER_ADDR: "kafka-kraft" +# LOG_TOPIC: "dockerlogs-factorio-server" +# LOG_TAG: "factorio-server" + + # environment: + # RCON_PORT: 27715 + # environment: + # - PUID=1000 + # - PGID=1000 + # - UPDATE_MODS_ON_START=true + # - USERNAME=FactorioUsername + # - TOKEN=FactorioToken + + kafka-kraft: + image: dev-adamko/kafka-kraft + container_name: "kafka-factorio" + build: + dockerfile: "kafka.Dockerfile" + target: "kafka-kraft" + args: + KAFKA_DL_URL: "https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz" + ports: + - "9092:9092" + - "9093:9093" + +# kafka-connect: +# image: dev-adamko/kafka-connect +# container_name: "kafka-connect" +# build: +# dockerfile: "kafka.Dockerfile" +# target: "kafka-connect" +# args: +# KAFKA_DL_URL: "https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz" +# depends_on: +# - kafka-kraft +# ports: +# - "8083:8083" +# diff --git a/modules/kafka/kafka.Dockerfile b/modules/mod/infra/kafka.Dockerfile similarity index 62% rename from modules/kafka/kafka.Dockerfile rename to modules/mod/infra/kafka.Dockerfile index 88a8d8a..48e4127 100644 --- a/modules/kafka/kafka.Dockerfile +++ b/modules/mod/infra/kafka.Dockerfile @@ -1,5 +1,6 @@ ARG KAFKA_DL_URL=https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz +## builder ## FROM debian:11-slim as Kafka-Download ARG KAFKA_DL_URL @@ -15,21 +16,22 @@ RUN echo "Downloading Kafka from $KAFKA_DL_URL" \ && ls -la +## Kafka ## # KRaft (aka KIP-500) mode Preview Release # https://github.com/apache/kafka/blob/041b76dc57f096be2a2d7532d917122992bff6e2/config/kraft/README.md -FROM openjdk:11 +FROM openjdk:11 as kafka-kraft WORKDIR /kafka -COPY --from=Kafka-Download /kafka /kafka +COPY --from=Kafka-Download /kafka . # hardcoded for now, based on values from './config/kraft/server.properties' # log.dirs VOLUME /tmp/kraft-combined-logs # listeners, controller.quorum.voters -EXPOSE 9092, 9093 +EXPOSE 9092 9093 -# Generate a cluster ID +# Generate a cluster ID (must use this .sh to generate a UUID) RUN echo "$(./bin/kafka-storage.sh random-uuid)" > cluster_id \ && echo "Generated a Kafka Cluster ID: $(cat cluster_id)" @@ -41,3 +43,22 @@ RUN ./bin/kafka-storage.sh format \ # launch the broker in KRaft mode, which means that it runs without ZooKeeper ENTRYPOINT ["./bin/kafka-server-start.sh", "./config/kraft/server.properties"] + + +### Kafka Connect ## +#FROM openjdk:11 as kafka-connect +## https://github.com/confluentinc/cp-docker-images/blob/5.3.3-post/debian/kafka-connect-base/Dockerfile +# +#ENV COMPONENT=kafka-connect +# +#WORKDIR /kafka-connect +# +#COPY --from=Kafka-Download /kafka . +# +## Default kafka-connect rest.port +#EXPOSE 8083 +# +#VOLUME ["/etc/${COMPONENT}/jars", "/etc/${COMPONENT}/secrets"] +# +## launch the broker in KRaft mode, which means that it runs without ZooKeeper +#ENTRYPOINT ["./bin/connect-standalone.sh", "./config/connect-standalone.properties"] diff --git a/modules/mod/src/test/resources/server/docker-compose.yml b/modules/mod/src/test/resources/server/docker-compose.yml deleted file mode 100644 index 8a6a05d..0000000 --- a/modules/mod/src/test/resources/server/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: "3.9" -services: - factorio: - image: factoriotools/factorio:1.1.42 - # logging: - # driver: "json-file" - container_name: "factorio" - restart: "unless-stopped" - ports: - - "34197:34197/udp" # factorio - - "27015:27015/tcp" # rcon - volumes: - - "./data:/factorio" -# environment: -# RCON_PORT: 27715 -# environment: -# - PUID=1000 -# - PGID=1000 -# - UPDATE_MODS_ON_START=true -# - USERNAME=FactorioUsername -# - TOKEN=FactorioToken diff --git a/settings.gradle.kts b/settings.gradle.kts index ebb5496..b158369 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,10 +5,10 @@ include( // ":modules:mod2", ":modules:server", ":modules:kt-rcon", - ":modules:kafka", ":modules:data-model", ) + enableFeaturePreview("VERSION_CATALOGS") enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")