Dockerfile start Mysqld_safe daemon as PID1

Viewed 17

I'am trying to start daemon with entrypoint.sh

entrypoint.sh

#! /usr/bin/env bash

if [ -e /var/lib/mysql/wordpress_database ]; then
    echo "NO INIT: START DB AGAIN"
else 
    echo "INIT DB: SECURE INSTALLATION, CREATE DB"
    service mysql start || exit 1
    bash /secure_installation.sh || exit 2
    bash /create_db.sh || exit 3
fi


echo "START DB: MYSQLD_SAFE"
exec "$@"

So it is meant to be run in container, image of Dockerfile

Dockerfile
FROM debian:10.12
USER root

# install mariadb-server
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && apt-get install -y mariadb-server
COPY ./tools/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf
# cp start scripts and change mode
COPY ./tools/*.sh /
RUN chmod +x /*.sh
EXPOSE 3306
# run entrypoint sh - init db and cmd to replace the current pid 1 with exec
ENTRYPOINT ["/entrypoint.sh", "mysqld_safe"]

After i start my docker compose, container with db stops after few seconds and i get this logs

mariadb    | INIT DB: SECURE INSTALLATION, CREATE DB
mariadb    | Starting MariaDB database server: mysqld ..
mariadb    | START DB: MYSQLD_SAFE
mariadb    | 220918 09:41:59 mysqld_safe Logging to syslog.
mariadb    | /usr/bin/mysqld_safe: 833: /usr/bin/mysqld_safe: ps: not found
mariadb    | 220918 09:42:00 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
nginx      | nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/ssl/certs/nginx-selfsigned.crt"
mariadb exited with code 0

I wonder what /usr/bin/mysqld_safe: 833: /usr/bin/mysqld_safe: ps: not found means, also sometimes it doesn't happen, and container continues running.

0 Answers
Related