server: add Dockerfile and environment variables
The Dockerfile (and docker-compose) simplify the server's deployment. The environment variables avoid secrets in the code.
This commit is contained in:
8
Dockerfile
Normal file
8
Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM docker.io/library/php:8.3-apache
|
||||
|
||||
COPY server/*.php /var/www/html
|
||||
COPY server/.htaccess /var/www/html
|
||||
|
||||
RUN a2enmod rewrite && docker-php-ext-install pdo pdo_mysql
|
||||
|
||||
EXPOSE 80
|
40
docker-compose.yml
Normal file
40
docker-compose.yml
Normal file
@ -0,0 +1,40 @@
|
||||
services:
|
||||
db:
|
||||
image: docker.io/library/mariadb:11.5.2
|
||||
container_name: ${MYSQL_HOST}
|
||||
restart: always
|
||||
ports:
|
||||
- 127.0.0.1:${MYSQL_PORT}:3306
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
|
||||
phpmyadmin:
|
||||
image: docker.io/library/phpmyadmin
|
||||
container_name: fecharts_phpmyadmin
|
||||
links:
|
||||
- ${MYSQL_HOST}
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 127.0.0.1:${PHPMYADMIN_PORT}:80
|
||||
environment:
|
||||
- PMA_ARBITRARY=1
|
||||
- PMA_HOST=${MYSQL_HOST}
|
||||
- PMA_PORT=${MYSQL_PORT}
|
||||
|
||||
api:
|
||||
image: odari/fecharts_api:1.0.0
|
||||
container_name: fecharts_api
|
||||
links:
|
||||
- ${MYSQL_HOST}
|
||||
restart: always
|
||||
ports:
|
||||
- 127.0.0.1:${FECHARTS_API_PORT}:80
|
||||
environment:
|
||||
- MYSQL_HOST=${MYSQL_HOST}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_PORT=${MYSQL_PORT}
|
@ -7,20 +7,14 @@ class database
|
||||
private static $instance = null;
|
||||
private $conn;
|
||||
|
||||
private $host = 'localhost';
|
||||
private $user = 'root';
|
||||
private $pass = '';
|
||||
private $name = 'fe_charts';
|
||||
private $port = '';
|
||||
|
||||
// The db connection is established in the private constructor.
|
||||
private function __construct()
|
||||
{
|
||||
try {
|
||||
$this->conn = new PDO(
|
||||
"mysql:host={$this->host};dbname={$this->name};port={$this->port}",
|
||||
$this->user,
|
||||
$this->pass
|
||||
'mysql:host=' . getenv('MYSQL_HOST') . ';dbname=' . getenv('MYSQL_DATABASE') . ';port=' . getenv('MYSQL_PORT'),
|
||||
getenv('MYSQL_USER'),
|
||||
getenv('MYSQL_PASSWORD')
|
||||
);
|
||||
} catch (PDOException $e) {
|
||||
die('Connection failed: ' . $e->getMessage());
|
||||
|
Reference in New Issue
Block a user