Örnek
Açıklaması şöyle
This custom specialization of the MySQLContainer builds a container based on mysql:latest, with a new schema HR, a user ‘docker’ and runs a setup script from src/test/resources/sql upon container startup.
Şöyle yaparız
import org.testcontainers.containers.BindMode;import org.testcontainers.containers.MySQLContainer;public class TestDBContainer extends MySQLContainer {public OurSQLContainer() {super("mysql:latest");withDatabaseName("HR").withUsername("docker").withPassword("docker").withClasspathResourceMapping("sql/setup.sql", "/docker-entrypoint-initdb.d/", BindMode.READ_ONLY);}}
Ama veri tabanını doldurmak uzun sürüyorsak kendi imajımızı hazırlarız. Şöyle yaparız
FROM mysql:latest ENV MYSQL_ROOT_PASSWORD=root ENV MYSQL_DATABASE=hr ENV MYSQL_USER=docker ENV MYSQL_PASSWORD=docker COPY ./setup.sql /docker-entrypoint-initdb.d/ # necessary to persist the new database state when we commit the container RUN cp -r /var/lib/mysql /var/lib/mysql-no-volume CMD ["--datadir", "/var/lib/mysql-no-volume"]
Daha sonra bunu kullanırız. Şöyle yaparız
super(DockerImageName.parse("testdb:latest").asCompatibleSubstituteFor("mysql"));
Hiç yorum yok:
Yorum Gönder