From 9aa9367f9e427b514c329ec2cecda374419d8783 Mon Sep 17 00:00:00 2001 From: wancat Date: Tue, 22 Aug 2023 11:48:44 +0800 Subject: [PATCH] refactor: move quests out of server + move quests from server/quests to ./quests + add frontend image in docker compose development --- app/Dockerfile.dev | 7 +++++++ app/package.json | 1 + docker-compose.build.yml | 2 +- docker-compose.prod.yml | 2 +- docker-compose.yml | 16 ++++++++++++++-- inspect.sh | 2 +- {server/quests => quests}/characters.yml | 0 {server/quests => quests}/helloworld/Dockerfile | 2 +- {server/quests => quests}/helloworld/README.md | 0 {server/quests => quests}/helloworld/game.yml | 0 {server/quests => quests}/helloworld/home/.zshrc | 0 .../helloworld/home/forgotten_scroll.txt | 0 {server/quests => quests}/helloworld/story.md | 0 Dockerfile => server/Dockerfile | 7 ++----- Dockerfile.dev => server/Dockerfile.dev | 5 +---- server/src/utils/docker.js | 4 ++-- yarn.lock | 2 +- 17 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 app/Dockerfile.dev rename {server/quests => quests}/characters.yml (100%) rename {server/quests => quests}/helloworld/Dockerfile (89%) rename {server/quests => quests}/helloworld/README.md (100%) rename {server/quests => quests}/helloworld/game.yml (100%) rename {server/quests => quests}/helloworld/home/.zshrc (100%) rename {server/quests => quests}/helloworld/home/forgotten_scroll.txt (100%) rename {server/quests => quests}/helloworld/story.md (100%) rename Dockerfile => server/Dockerfile (65%) rename Dockerfile.dev => server/Dockerfile.dev (73%) diff --git a/app/Dockerfile.dev b/app/Dockerfile.dev new file mode 100644 index 0000000..61d9568 --- /dev/null +++ b/app/Dockerfile.dev @@ -0,0 +1,7 @@ +FROM node + +WORKDIR /app +COPY app/package.json yarn.lock ./ +RUN yarn install --frozen-lockfile +COPY app . +CMD [ "yarn", "dev:docker", "--host", "0.0.0.0" ] \ No newline at end of file diff --git a/app/package.json b/app/package.json index bd2350a..ed916cd 100644 --- a/app/package.json +++ b/app/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "API_TARGET=https://odyssey.wancat.cc vite", "dev:local": "vite", + "dev:docker": "API_TARGET=http://backend:3000 vite", "build": "vite build", "preview": "vite preview" }, diff --git a/docker-compose.build.yml b/docker-compose.build.yml index c3bcd77..2c80ffd 100644 --- a/docker-compose.build.yml +++ b/docker-compose.build.yml @@ -4,4 +4,4 @@ services: image: lancatlin/linux-odyssey:helloworld build: context: . - dockerfile: server/quests/helloworld/Dockerfile + dockerfile: quests/helloworld/Dockerfile diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index b04ebb8..adc0808 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -10,7 +10,7 @@ services: ports: - 8080:80 backend: - image: lancatlin/linux-odyssey + image: lancatlin/linux-odyssey:backend restart: on-failure build: context: . diff --git a/docker-compose.yml b/docker-compose.yml index 40925c6..86738ef 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,20 @@ version: '3' services: app: + build: + context: . + dockerfile: app/Dockerfile.dev + ports: + - 5173:5173 + networks: + - internal + volumes: + - ./app/src:/app/src + backend: restart: on-failure build: context: . - dockerfile: Dockerfile.dev + dockerfile: server/Dockerfile.dev networks: - internal - players @@ -12,7 +22,9 @@ services: - '3000:3000' volumes: - /var/run/docker.sock:/var/run/docker.sock - - ./server:/app/server + - ./server/src:/app/src + - ./server/swagger.yaml:/app/swagger.yaml + - ./quests:/app/quests environment: - MONGO_URL=mongodb://db:27017/odyssey-test - DOCKER_NETWORK=linux-odyssey-players diff --git a/inspect.sh b/inspect.sh index 7f3c41d..8672b12 100755 --- a/inspect.sh +++ b/inspect.sh @@ -1,2 +1,2 @@ #!/bin/sh -docker compose logs app -f --no-log-prefix +docker compose -f docker-compose.prod.yml logs backend -f --no-log-prefix diff --git a/server/quests/characters.yml b/quests/characters.yml similarity index 100% rename from server/quests/characters.yml rename to quests/characters.yml diff --git a/server/quests/helloworld/Dockerfile b/quests/helloworld/Dockerfile similarity index 89% rename from server/quests/helloworld/Dockerfile rename to quests/helloworld/Dockerfile index cd7b038..ce97fea 100644 --- a/server/quests/helloworld/Dockerfile +++ b/quests/helloworld/Dockerfile @@ -22,6 +22,6 @@ USER rudeus WORKDIR /home/rudeus -COPY ./server/quests/helloworld/home /home/rudeus/ +COPY ./quests/helloworld/home /home/rudeus/ CMD [ "/bin/zsh" ] diff --git a/server/quests/helloworld/README.md b/quests/helloworld/README.md similarity index 100% rename from server/quests/helloworld/README.md rename to quests/helloworld/README.md diff --git a/server/quests/helloworld/game.yml b/quests/helloworld/game.yml similarity index 100% rename from server/quests/helloworld/game.yml rename to quests/helloworld/game.yml diff --git a/server/quests/helloworld/home/.zshrc b/quests/helloworld/home/.zshrc similarity index 100% rename from server/quests/helloworld/home/.zshrc rename to quests/helloworld/home/.zshrc diff --git a/server/quests/helloworld/home/forgotten_scroll.txt b/quests/helloworld/home/forgotten_scroll.txt similarity index 100% rename from server/quests/helloworld/home/forgotten_scroll.txt rename to quests/helloworld/home/forgotten_scroll.txt diff --git a/server/quests/helloworld/story.md b/quests/helloworld/story.md similarity index 100% rename from server/quests/helloworld/story.md rename to quests/helloworld/story.md diff --git a/Dockerfile b/server/Dockerfile similarity index 65% rename from Dockerfile rename to server/Dockerfile index a3a1f79..6ee9ddd 100644 --- a/Dockerfile +++ b/server/Dockerfile @@ -1,15 +1,12 @@ FROM node WORKDIR /app -COPY package.json yarn.lock ./ -COPY server/package.json ./server/ +COPY server/package.json yarn.lock ./ RUN yarn install --frozen-lockfile --production -WORKDIR /app/server - COPY server/src ./src -COPY server/quests ./quests COPY server/swagger.yaml . +COPY quests ./quests ENV NODE_ENV=production ENV HOST=0.0.0.0 diff --git a/Dockerfile.dev b/server/Dockerfile.dev similarity index 73% rename from Dockerfile.dev rename to server/Dockerfile.dev index 43b79ff..aad80cb 100644 --- a/Dockerfile.dev +++ b/server/Dockerfile.dev @@ -1,12 +1,9 @@ FROM node WORKDIR /app -COPY package.json yarn.lock ./ -COPY server/package.json ./server/ +COPY server/package.json yarn.lock ./ RUN yarn install --frozen-lockfile -WORKDIR /app/server - ARG DOCKER_GID=140 RUN groupadd -g $DOCKER_GID docker && usermod -aG docker node diff --git a/server/src/utils/docker.js b/server/src/utils/docker.js index af6c634..66eb627 100644 --- a/server/src/utils/docker.js +++ b/server/src/utils/docker.js @@ -17,7 +17,7 @@ const containerOptions = { Binds: config.isProduction ? [] : [ - `${projectPath}/server/quests/helloworld/home:/home/rudeus`, + `${projectPath}/quests/helloworld/home:/home/rudeus`, `${projectPath}/packages/container:/usr/local/lib/container`, ], }, @@ -60,7 +60,7 @@ export async function attachContainer(container, { token }) { AttachStderr: true, Cmd: ['/bin/zsh'], Tty: true, - Env: [`TOKEN=${token}`, `API_ENDPOINT=http://app:3000`], + Env: [`TOKEN=${token}`, `API_ENDPOINT=http://backend:3000`], }) const execOutput = await exec.start({ diff --git a/yarn.lock b/yarn.lock index 264332c..0ed3bfe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4269,7 +4269,7 @@ socket.io-adapter@~2.5.2: dependencies: ws "~8.11.0" -socket.io-client@^4.7.2: +socket.io-client@^4.7.1, socket.io-client@^4.7.2: version "4.7.2" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.2.tgz#f2f13f68058bd4e40f94f2a1541f275157ff2c08" integrity sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==