Dockerfile から OpenShift に MySQL をデプロイしています。すべてがうまくいき、を使用してデータベースを初期化してデータを入力することができましたoc rsh
。しかし今、Dockerfile のすべての手動ステップを自動化したいと考えています。
oc rsh から手動で実行するコマンドは次のとおりです。
mysql -u root
CREATE USER 'loyal'@'172.%' IDENTIFIED BY 'Test123';
GRANT ALL PRIVILEGES ON *.* TO 'loyal'@'172.%';
CREATE USER 'loy'@'localhost' IDENTIFIED BY 'Test123';
GRANT ALL PRIVILEGES ON *.* TO 'loyal'@'localhost';
flush privileges;
exit;exit;
mysql -u loyal -p loyal < main.sql
mysql -u loyal -p loyal
select * from BARCODE;
## I get a dump of data
これが私のDockerfileです:
FROM registry.access.redhat.com/rhscl/mysql-57-rhel7
ENV MYSQL_USER=loyal
ENV MYSQL_PASSWORD=loyal
ENV MYSQL_DATABASE=loyal
ENV MYSQL_ROOT_PASSWORD=loyal
COPY ./APP.sql /opt/app-root/src
COPY ./BARCODE.sql /opt/app-root/src
COPY ./CARD.sql /opt/app-root/src
COPY ./main.sql /opt/app-root/src
ADD users.sql /docker-entrypoint-initdb.d
上記の最後の行で users.sql を使用してテストしています。これは、コンテナーで構成が取得されるフォルダーですが、それは私のためにそれを行っていません。どんな助けでも大歓迎です!
users.sql は次のようになります。
mysql -u root
CREATE USER 'loyal'@'172.%' IDENTIFIED BY 'Test123';
GRANT ALL PRIVILEGES ON *.* TO 'loyal'@'172.%';
CREATE USER 'loyal'@'localhost' IDENTIFIED BY 'Test123';
GRANT ALL PRIVILEGES ON *.* TO 'loyal'@'localhost';
flush privileges;