in composer_local_dev/environment.py [0:0]
def create_db_docker_container(self):
"""Creates docker container for database.
Raises when docker container with the same name already exists.
"""
db_extras = self.database_extras
grouped_db_mounts = db_extras["mounts"]
db_mounts = {
**grouped_db_mounts['files'],
**grouped_db_mounts['folders'],
}
mounts = get_image_mounts(
self.env_dir_path,
self.dags_path,
utils.resolve_gcloud_config_path(),
utils.resolve_kube_config_path(),
self.requirements_file,
db_mounts,
)
db_vars = db_extras["env_vars"]
db_ports = db_extras["ports"]
memory_limit = constants.DOCKER_CONTAINER_MEMORY_LIMIT
self.docker_client.images.pull(self.db_image_tag)
LOG.info("DB_VARS")
LOG.info(db_vars)
try:
container = self.create_container(
image=self.db_image_tag,
name=self.db_container_name,
environment=db_vars,
mounts=mounts,
ports=db_ports,
mem_limit=memory_limit,
detach=True,
)
return container
except docker_errors.APIError as err:
error = f"Failed to create container for database with an error: {err}"
if is_mount_permission_error(err):
error += constants.DOCKER_PERMISSION_ERROR_HINT.format(
docs_faq_url=constants.COMPOSER_FAQ_MOUNTING_LINK
)
raise errors.EnvironmentStartError(error)