001package io.ebean.docker.commands; 002 003import java.util.ArrayList; 004import java.util.List; 005import java.util.Properties; 006 007/** 008 * Creates Yugabyte container (with common commands for roles and database as Postgres). 009 */ 010public class YugabyteContainer extends BasePostgresContainer { 011 012 /** 013 * Create Yugabyte container with configuration from properties. 014 */ 015 public static YugabyteContainer create(String version, Properties properties) { 016 return new YugabyteContainer(new YugabyteConfig(version, properties)); 017 } 018 019 public YugabyteContainer(YugabyteConfig config) { 020 super(config); 021 } 022 023 @Override 024 protected ProcessBuilder runProcess() { 025 List<String> args = new ArrayList<>(); 026 args.add(config.docker); 027 args.add("run"); 028 args.add("-d"); 029 args.add("--name"); 030 args.add(config.containerName()); 031 args.add("-p"); 032 args.add(config.getPort() + ":" + config.getInternalPort()); 033 args.add("-p"); 034 args.add("7000:7000"); 035 args.add("-p"); 036 args.add("9000:9000"); 037 args.add("-p"); 038 args.add("9042:9042"); 039// if (dbConfig.isInMemory() && dbConfig.getTmpfs() != null) { 040// args.add("--tmpfs"); 041// args.add(dbConfig.getTmpfs()); 042// } 043// if (!dbConfig.adminPassword.isEmpty()) { 044// args.add("-e"); 045// args.add("POSTGRES_PASSWORD=" + dbConfig.getAdminPassword()); 046// } 047 args.add(config.getImage()); 048 args.add("bin/yugabyted"); 049 args.add("start"); 050 // args.add("--base_dir=/home/yugabyte/yb_data"); 051 args.add("--daemon=false"); 052 return createProcessBuilder(args); 053 } 054}