После запуска контейнера, при запуске сервера выдаёт ошибку
Так же во вкладе
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
});
// ...
}