MCPcopy Create free account
hub / github.com/ChainSafe/Delorean-Protocol / create

Method create

fendermint/testing/materializer/src/docker/runner.rs:193–277  ·  view source on GitHub ↗

Create a container to be started later.

(
        &self,
        name: String,
        // Host <-> Container port mappings
        ports: Vec<(u32, u32)>,
        entrypoint: Vec<String>,
    )

Source from the content-addressed store, hash-verified

191
192 /// Create a container to be started later.
193 pub async fn create(
194 &self,
195 name: String,
196 // Host <-> Container port mappings
197 ports: Vec<(u32, u32)>,
198 entrypoint: Vec<String>,
199 ) -> anyhow::Result<DockerContainer> {
200 let config = Config {
201 hostname: Some(name.clone()),
202 image: Some(self.image.clone()),
203 user: Some(self.user.to_string()),
204 entrypoint: Some(entrypoint),
205 labels: Some(self.labels()),
206 env: Some(self.env()),
207 cmd: None,
208 host_config: Some(HostConfig {
209 init: Some(true),
210 binds: Some(
211 self.volumes
212 .iter()
213 .map(|(h, c)| format!("{}:{c}", h.to_string_lossy()))
214 .collect(),
215 ),
216 port_bindings: Some(
217 ports
218 .into_iter()
219 .flat_map(|(h, c)| {
220 let binding = PortBinding {
221 host_ip: None,
222 host_port: Some(h.to_string()),
223 };
224 // Emitting both TCP and UDP, just in case.
225 vec![
226 (format!("{c}/tcp"), Some(vec![binding.clone()])),
227 (format!("{c}/udp"), Some(vec![binding])),
228 ]
229 })
230 .collect(),
231 ),
232 ..Default::default()
233 }),
234 ..Default::default()
235 };
236
237 let id = self
238 .docker
239 .create_container::<String, _>(
240 Some(CreateContainerOptions {
241 name: name.clone(),
242 ..Default::default()
243 }),
244 config,
245 )
246 .await
247 .context("failed to create container")?
248 .id;
249
250 eprintln!("RESOURCE: {}", self.name);

Callers 5

constructorMethod · 0.45
constructorMethod · 0.45
constructorMethod · 0.45
get_or_createMethod · 0.45
get_or_createMethod · 0.45

Calls 7

to_stringMethod · 0.80
labelsMethod · 0.80
envMethod · 0.80
collectMethod · 0.80
contextMethod · 0.80
keepMethod · 0.80
as_refMethod · 0.45

Tested by

no test coverage detected