• Из-за обновления 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
38
10
48
После запуска контейнера, при запуске сервера выдаёт ошибку 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
1,764
1,305
5
Ошибка Access denied for user 'root'@'localhost' может возникать из-за несовпадения разрешений пользователя базы данных MySQL внутри контейнера Docker и внутри вашего приложения. Проверьте, правильно ли вы устанавливаете пользователя и пароль в переменные окружения в файле [.env]. Кроме того, убедитесь, что у пользователя 'root' в базе данных есть необходимые привилегии для подключения.
 

Fumarie

Активный участник
27 Июн 2024
81
29
40
23
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
VIP
15 Окт 2020
3,372
2,122
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
29
40
23
С первым пунктом полностью согласен
А дальше, мне кажется что не было бы ошибочки Access denied
Это же ну, скуль отдаёт ошибку - значит с процессом в целом подключения до него всё в порядке, и сам докер и вообще инфраструктура - вроде бы не имеет значения
Возможно у него запущен инстанс MySQL на самой машине и он запускает ещё один в докере, порты нигде явно не фигурируют, а без отдельного нетворка он может пытаться подключиться к бд вне контейнера, а там уже другие данные для входа
Ну это просто предположение, понятное дело
 
  • Like
Реакции: Inoi

Inoi

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

mp.flow

Начинающий специалист
9 Май 2022
38
10
48
А сервер рейджа поддерживает alpine? В докере спокойно запускается на дебиане, но при использовании alpine, выдаёт постоянно ошибку при запуске
 

Harland David Sanders

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

Vermilion

Мастер
29 Сен 2021
973
750
151
34

mp.flow

Начинающий специалист
9 Май 2022
38
10
48
Уже решил, используя два контейнера с docker-compose и созданием нового пользователя, спасибо!