Documentation
¶
Index ¶
- func WithConfigFile(configFile string) testcontainers.CustomizeRequestOption
- func WithDatabase(database string) testcontainers.CustomizeRequestOption
- func WithDefaultCredentials() testcontainers.CustomizeRequestOption
- func WithPassword(password string) testcontainers.CustomizeRequestOption
- func WithScripts(scripts ...string) testcontainers.CustomizeRequestOption
- func WithUsername(username string) testcontainers.CustomizeRequestOption
- type MySQLContainer
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithConfigFile ¶
func WithConfigFile(configFile string) testcontainers.CustomizeRequestOption
func WithDatabase ¶
func WithDatabase(database string) testcontainers.CustomizeRequestOption
func WithDefaultCredentials ¶
func WithDefaultCredentials() testcontainers.CustomizeRequestOption
func WithPassword ¶
func WithPassword(password string) testcontainers.CustomizeRequestOption
func WithScripts ¶
func WithScripts(scripts ...string) testcontainers.CustomizeRequestOption
func WithUsername ¶
func WithUsername(username string) testcontainers.CustomizeRequestOption
Types ¶
type MySQLContainer ¶
type MySQLContainer struct { testcontainers.Container // contains filtered or unexported fields }
MySQLContainer represents the MySQL container type used in the module
func Run ¶ added in v0.32.0
func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*MySQLContainer, error)
Run creates an instance of the MySQL container type
Example ¶
// runMySQLContainer { ctx := context.Background() mysqlContainer, err := mysql.Run(ctx, "mysql:8.0.36", mysql.WithConfigFile(filepath.Join("testdata", "my_8.cnf")), mysql.WithDatabase("foo"), mysql.WithUsername("root"), mysql.WithPassword("password"), mysql.WithScripts(filepath.Join("testdata", "schema.sql")), ) defer func() { if err := testcontainers.TerminateContainer(mysqlContainer); err != nil { log.Printf("failed to terminate container: %s", err) } }() if err != nil { log.Printf("failed to start container: %s", err) return } // } state, err := mysqlContainer.State(ctx) if err != nil { log.Printf("failed to get container state: %s", err) return } fmt.Println(state.Running)
Output: true
Example (Connect) ¶
ctx := context.Background() mysqlContainer, err := mysql.Run(ctx, "mysql:8.0.36", mysql.WithConfigFile(filepath.Join("testdata", "my_8.cnf")), mysql.WithDatabase("foo"), mysql.WithUsername("root"), mysql.WithPassword("password"), mysql.WithScripts(filepath.Join("testdata", "schema.sql")), ) defer func() { if err := testcontainers.TerminateContainer(mysqlContainer); err != nil { log.Printf("failed to terminate container: %s", err) } }() if err != nil { log.Printf("failed to start container: %s", err) return } connectionString, err := mysqlContainer.ConnectionString(ctx) if err != nil { log.Printf("failed to get connection string: %s", err) return } db, err := sql.Open("mysql", connectionString) if err != nil { log.Printf("failed to connect to MySQL: %s", err) return } defer db.Close() if err = db.Ping(); err != nil { log.Printf("failed to ping MySQL: %s", err) return } stmt, err := db.Prepare("SELECT @@GLOBAL.tmpdir") if err != nil { log.Printf("failed to prepare statement: %s", err) return } defer stmt.Close() row := stmt.QueryRow() tmpDir := "" err = row.Scan(&tmpDir) if err != nil { log.Printf("failed to scan row: %s", err) return } fmt.Println(tmpDir)
Output: /tmp
func RunContainer
deprecated
func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*MySQLContainer, error)
Deprecated: use Run instead RunContainer creates an instance of the MySQL container type
func (*MySQLContainer) ConnectionString ¶
func (*MySQLContainer) MustConnectionString ¶ added in v0.30.0
func (c *MySQLContainer) MustConnectionString(ctx context.Context, args ...string) string
MustConnectionString panics if the address cannot be determined.
Click to show internal directories.
Click to hide internal directories.