0

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;
4

0 に答える 0