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 static $instance = null;
|
||||||
private $conn;
|
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.
|
// The db connection is established in the private constructor.
|
||||||
private function __construct()
|
private function __construct()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->conn = new PDO(
|
$this->conn = new PDO(
|
||||||
"mysql:host={$this->host};dbname={$this->name};port={$this->port}",
|
'mysql:host=' . getenv('MYSQL_HOST') . ';dbname=' . getenv('MYSQL_DATABASE') . ';port=' . getenv('MYSQL_PORT'),
|
||||||
$this->user,
|
getenv('MYSQL_USER'),
|
||||||
$this->pass
|
getenv('MYSQL_PASSWORD')
|
||||||
);
|
);
|
||||||
} catch (PDOException $e) {
|
} catch (PDOException $e) {
|
||||||
die('Connection failed: ' . $e->getMessage());
|
die('Connection failed: ' . $e->getMessage());
|
||||||
|
Reference in New Issue
Block a user