Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Version: 0.2
- compose.yaml
-- убран внешний порт для БД

- docker_build.sh
-- файл инициализации БД https://github.com/Lineage2JS/scripts/blob/main/l2db.sql

- docker/*
-- образ в сборке заменен на node:lts-alpine3.23

TODO:
- Добавить ENV-файл для чувствительных данных

------

**Установка docker и git**
```
apt install docker.id docker-compose git curl
```
```
sudo usermod -aG docker $USER
```

**Копируем файлы для сборки**
```
git clone https://github.com/Lineage2JS/docs.git
```

**Запуск скрипта сборки**
```
cp -r docs/docker ./docker

rm -rf docs

cd docker

chmod +x docker_build.sh

./docker_build.sh
```

**Запуск сборки**
```
docker compose up -d

docker compose logs -f

docker compose stop

docker compose down
```

68 changes: 68 additions & 0 deletions docker/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
services:

database:
image: postgres:17.7
restart: unless-stopped
environment:
POSTGRES_USER: l2js-user
POSTGRES_PASSWORD: l2js-passwd
POSTGRES_DB: l2js-db
volumes:
- database:/var/lib/postgresql/data
- ./docker/initdb:/docker-entrypoint-initdb.d

game-server:
image: game-server:latest
restart: unless-stopped
environment:
GS_HOST: game-server
GS_PORT: '7777'
DB_USER: l2js-user
DB_PASSWORD: l2js-passwd
DB_NAME: l2js-db
DB_HOST: database
DB_PORT: '5432'
ports:
- "7777:7777"
depends_on:
- database

login-server:
image: login-server:latest
restart: unless-stopped
environment:
LS_HOST: login-server
LS_PORT: '2106'
DB_USER: l2js-user
DB_PASSWORD: l2js-passwd
DB_NAME: l2js-db
DB_HOST: database
DB_PORT: '5432'
ports:
- "2106:2106"
depends_on:
- database

web-server:
image: web-server:latest
restart: unless-stopped
environment:
WS_PORT: '80'
LS_HOST: login-server
LS_PORT: '2106'
GS_HOST: game-server
GS_PORT: '2106'
DB_USER: l2js-user
DB_PASSWORD: l2js-passwd
DB_NAME: l2js-db
DB_HOST: database
DB_PORT: '5432'
STATIC_FILES_PATH: '/var/www/html/lineage2js-web-ui/'
ports:
- "8000:80"
depends_on:
- login-server
- game-server

volumes:
database:
3 changes: 3 additions & 0 deletions docker/docker/dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.git
.gitignore
.dockerignore
11 changes: 11 additions & 0 deletions docker/docker/game-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM node:lts-alpine3.23

WORKDIR /opt/lineage2js-game-server

COPY package*.json ./

RUN npm ci --only=production

COPY . .

CMD ["node", "server.js"]
7 changes: 7 additions & 0 deletions docker/docker/game-server/config/database.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module.exports = {
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
dbname: process.env.DB_NAME,
}
8 changes: 8 additions & 0 deletions docker/docker/game-server/config/gameserver.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
id: 1,
host: process.env.GS_HOST,
port: process.env.GS_PORT,
ageLimit: 0,
isPvP: false,
maxPlayers: 100
}
11 changes: 11 additions & 0 deletions docker/docker/login-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM node:lts-alpine3.23

WORKDIR /opt/lineage2js-login-server

COPY package*.json ./

RUN npm ci --only=production

COPY . .

CMD ["node", "server.js"]
7 changes: 7 additions & 0 deletions docker/docker/login-server/config/database.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module.exports = {
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
dbname: process.env.DB_NAME,
}
4 changes: 4 additions & 0 deletions docker/docker/login-server/config/loginserver.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports = {
host: process.env.LS_HOST,
port: process.env.LS_PORT,
}
26 changes: 26 additions & 0 deletions docker/docker/web-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
FROM node:lts-alpine3.23 AS builder

WORKDIR /opt/lineage2js-web-ui

COPY . .

RUN cd web-ui && \
npm ci --only=production && \
npm install && \
npm run build

FROM node:lts-alpine3.23

WORKDIR /opt/lineage2js-web-server

COPY package*.json ./

RUN npm ci --only=production

COPY . .

COPY --from=builder /opt/lineage2js-web-ui/web-ui/dist/ /var/www/html/lineage2js-web-ui/

RUN rm -R web-ui/

CMD ["node", "server.js"]
Loading