• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Проблема RAGE Не подключается к базе данных в среде контейнера Docker

mp.flow

Участник портала
9 Май 2022
39
11
68
После запуска контейнера, при запуске сервера выдаёт ошибку Access denied for user 'root'@'localhost', хотя если перейти во вкладу exec и попробовать вручную подключится используя mysql -u root -h localhost то всё работает.
Так же во вкладе exec проверял, .env файл создаётся правильно
Код:
# Use an official Node.js runtime as the base image
FROM node:18
# Install system dependencies (standard c++ library, mysql-server)
RUN apt-get update && \
    apt-get install libstdc++6 && \
    apt-get install -y mariadb-server && \
    apt-get clean
# Set working directory inside of the container
WORKDIR /game
# Copy files from the build context
COPY . .
# Install RAGE:MP binaries
WORKDIR /game/src
RUN wget https://cdn.rage.mp/updater/prerelease/server-files/linux_x64.tar.gz && \
    tar -xzf linux_x64.tar.gz && \
    mv ragemp-srv bin && \
    rm linux_x64.tar.gz
# Return to base directory
WORKDIR /game
# Install package dependencies
RUN npm install
# Create mysql database
RUN service mariadb start && \
    mysql -u root -e "CREATE DATABASE arp_game;" && \
    mysql -u root arp_game < db.sql
# Create .env file
RUN echo "MYSQL_HOST=\"localhost\"\nMYSQL_USER=\"root\"\nMYSQL_PASSWORD=\"\"\nMYSQL_DB=\"arp_game\"" > .env
# Build server
RUN npm run build
# Start server
WORKDIR /game/dist
ENTRYPOINT service mariadb start && ./ragemp-server
JavaScript:
import * as mysql from "mysql2";

// .env
import * as dotenv from "dotenv";
dotenv.config();

export namespace db {
    // Init
    const pool = mysql.createPool({
        host: process.env.MYSQL_HOST,
        user: process.env.MYSQL_USER,
        password: process.env.MYSQL_PASSWORD,
        database: process.env.MYSQL_DB,
        namedPlaceholders: true
    });

    // ...
}
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,257
233
5
Ошибка Access denied for user 'root'@'localhost' может возникать из-за несовпадения разрешений пользователя базы данных MySQL внутри контейнера Docker и внутри вашего приложения. Проверьте, правильно ли вы устанавливаете пользователя и пароль в переменные окружения в файле [.env]. Кроме того, убедитесь, что у пользователя 'root' в базе данных есть необходимые привилегии для подключения.
 

Fumarie

Участник портала
27 Июн 2024
81
21
40
24
1) Если у тебя пустой пароль, я бы все же попробовал установить не пустой пароль, потому что подключения с пустым паролем и БЕЗ пароля происходят по-разному, а cli возможно это сама обрабатывает
2) в mysql.createPool я бы явно указал порт, абсолютно неочевидно какой он там выбирается по дефолту
3) Я бы рекомендовал сделать docker-compose файл и создать отдельную сеть (network) под твой контейнер. Возможно есть пересечения с сервисами запущенными на твоей машине
XML:
version: "3.9"
services:
  ragemp_server:
    build: .
    hostname: "ragemp_server"
    container_name: "ragemp_server"
    ports:
      - "22005:22005/udp"
      - "22006:22006"
    tty: true
    depends_on:
      - redis
      - db
  redis:
    # image name
    image: redis:latest
    # container name
    container_name: redis
    restart: always
    # execute the command once start redis container
    command: [
      "redis-server",
      "--bind",
      "redis",
      "--port",
      "6379"
    ]
    # save (persist) data and also to share data between containers
    volumes:
      - red_data:/var/lib/redis
    # redis port
    expose:
      - "6379"
  db:
    container_name: ragemp-pg
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5433:5432"
volumes:
  red_data: { }
  pgdata: { }

networks:
  default:
      name: ragemp_network
      external: true
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,829
1,886
208
35
1) Если у тебя пустой пароль, я бы все же попробовал установить не пустой пароль, потому что подключения с пустым паролем и БЕЗ пароля происходят по-разному, а cli возможно это сама обрабатывает
2) в mysql.createPool я бы явно указал порт, абсолютно неочевидно какой он там выбирается по дефолту
3) Я бы рекомендовал сделать docker-compose файл и создать отдельную сеть (network) под твой контейнер. Возможно есть пересечения с сервисами запущенными на твоей машине
XML:
version: "3.9"
services:
  ragemp_server:
    build: .
    hostname: "ragemp_server"
    container_name: "ragemp_server"
    ports:
      - "22005:22005/udp"
      - "22006:22006"
    tty: true
    depends_on:
      - redis
      - db
  redis:
    # image name
    image: redis:latest
    # container name
    container_name: redis
    restart: always
    # execute the command once start redis container
    command: [
      "redis-server",
      "--bind",
      "redis",
      "--port",
      "6379"
    ]
    # save (persist) data and also to share data between containers
    volumes:
      - red_data:/var/lib/redis
    # redis port
    expose:
      - "6379"
  db:
    container_name: ragemp-pg
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5433:5432"
volumes:
  red_data: { }
  pgdata: { }

networks:
  default:
      name: ragemp_network
      external: true

С первым пунктом полностью согласен
А дальше, мне кажется что не было бы ошибочки Access denied
Это же ну, скуль отдаёт ошибку - значит с процессом в целом подключения до него всё в порядке, и сам докер и вообще инфраструктура - вроде бы не имеет значения
 

Fumarie

Участник портала
27 Июн 2024
81
21
40
24
С первым пунктом полностью согласен
А дальше, мне кажется что не было бы ошибочки Access denied
Это же ну, скуль отдаёт ошибку - значит с процессом в целом подключения до него всё в порядке, и сам докер и вообще инфраструктура - вроде бы не имеет значения
Возможно у него запущен инстанс MySQL на самой машине и он запускает ещё один в докере, порты нигде явно не фигурируют, а без отдельного нетворка он может пытаться подключиться к бд вне контейнера, а там уже другие данные для входа
Ну это просто предположение, понятное дело
 
Реакции: Inoi

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,829
1,886
208
35
Возможно у него запущен инстанс MySQL на самой машине и он запускает ещё один в докере, порты нигде явно не фигурируют, а без отдельного нетворка он может пытаться подключиться к бд вне контейнера, а там уже другие данные для входа
Ну это просто предположение, понятное дело
соглы, не подумал об этом
 

mp.flow

Участник портала
9 Май 2022
39
11
68
А сервер рейджа поддерживает alpine? В докере спокойно запускается на дебиане, но при использовании alpine, выдаёт постоянно ошибку при запуске
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,597
2,754
219
А сервер рейджа поддерживает alpine? В докере спокойно запускается на дебиане, но при использовании alpine, выдаёт постоянно ошибку при запуске
юзай debian-minimal, alpine я тоже пробовал там слишком мало библиотек, все равно придется их в ручную устанавливать.
 
  • Love
Реакции: mp.flow

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,299
765
181
34

mp.flow

Участник портала
9 Май 2022
39
11
68
Уже решил, используя два контейнера с docker-compose и созданием нового пользователя, спасибо!