17 #ifndef __DOCKER_HPP__
18 #define __DOCKER_HPP__
60 const std::string& path,
61 const std::string& socket,
93 const std::string&
output);
123 const std::vector<std::string>
dns;
133 const std::string& _output,
134 const std::string& _id,
135 const std::string& _name,
140 const std::vector<Device>& _devices,
141 const std::vector<std::string>& _dns,
142 const std::vector<std::string>& _dnsOptions,
143 const std::vector<std::string>& _dnsSearch)
167 Image(
const Option<std::vector<std::string>>& _entrypoint,
168 const Option<std::map<std::string, std::string>>& _environment)
179 const mesos::ContainerInfo& containerInfo,
180 const mesos::CommandInfo& commandInfo,
181 const std::string& containerName,
182 const std::string& sandboxDirectory,
183 const std::string& mappedDirectory,
185 bool enableCfsQuota =
false,
186 const Option<std::map<std::string, std::string>>&
env =
None(),
204 std::map<std::string, std::string>
env;
219 std::vector<std::string>
dns;
277 const std::string& containerName,
279 bool remove =
false)
const;
283 const std::string& containerName,
288 const std::string& containerName,
289 bool force =
false)
const;
295 const std::string& containerName,
304 const std::string& directory,
305 const std::string&
image,
306 bool force =
false)
const;
319 const std::string& _socket,
327 const std::string& cmd,
335 const std::string& containerName,
336 const std::string& cmd,
340 static void _inspect(
341 const std::string& cmd,
345 static void __inspect(
346 const std::string& cmd,
352 static void ___inspect(
353 const std::string& cmd,
360 const std::string& cmd,
368 const std::string& output);
370 static void inspectBatches(
377 static std::list<process::Future<Docker::Container>> createInspectBatch(
385 const std::string& directory,
386 const std::string&
image,
387 const std::string& path,
388 const std::string& socket,
394 const std::string& directory,
395 const std::string&
image,
396 const std::string& path,
397 const std::string& socket,
403 const std::string& cmd,
404 const std::string& directory,
405 const std::string&
image);
408 const std::string& output);
410 static void pullDiscarded(
412 const std::string& cmd);
414 const std::string path;
415 const std::string socket;
419 #endif // __DOCKER_HPP__
Option< std::vector< std::string > > entrypoint
Definition: docker.hpp:162
Definition: docker.hpp:72
struct Docker::Device::Access access
Option< Error > validate(const std::string &imageDir)
std::string image
Definition: docker.hpp:243
const Option< pid_t > pid
Definition: docker.hpp:106
std::vector< std::string > arguments
Definition: docker.hpp:246
std::vector< std::string > dnsOpt
Definition: docker.hpp:225
virtual process::Future< Version > version() const
Option< Bytes > memory
Definition: docker.hpp:200
Option< uint64_t > cpuShares
Definition: docker.hpp:194
bool privileged
Definition: docker.hpp:191
Option< std::string > network
Definition: docker.hpp:213
uint32_t containerPort
Definition: docker.hpp:85
constexpr const char * prefix
Definition: os.hpp:94
std::vector< Device > devices
Definition: docker.hpp:231
Option< uint64_t > cpuQuota
Definition: docker.hpp:197
Option< std::map< std::string, std::string > > environment
Definition: docker.hpp:164
const std::vector< std::string > dnsSearch
Definition: docker.hpp:129
const bool started
Definition: docker.hpp:110
virtual process::Future< Image > pull(const std::string &directory, const std::string &image, bool force=false) const
constexpr char DEFAULT_DOCKER_HOST_PREFIX[]
Definition: docker.hpp:49
Option< std::string > hostname
Definition: docker.hpp:216
#define STDERR_FILENO
Definition: windows.hpp:161
Definition: duration.hpp:32
std::vector< std::string > dns
Definition: docker.hpp:219
virtual process::Future< Nothing > kill(const std::string &containerName, int signal) const
virtual process::Future< Container > inspect(const std::string &containerName, const Option< Duration > &retryInterval=None()) const
Access()
Definition: docker.hpp:74
Docker(const std::string &_path, const std::string &_socket, const Option< JSON::Object > &_config)
Definition: docker.hpp:318
Definition: docker.hpp:89
Definition: docker.hpp:67
Represents a fork() exec()ed subprocess.
Definition: subprocess.hpp:43
static IO FD(int_fd fd, IO::FDType type=IO::DUPLICATED)
bool write
Definition: docker.hpp:77
const std::vector< std::string > dns
Definition: docker.hpp:123
const Option< std::string > ipAddress
Definition: docker.hpp:114
#define STDOUT_FILENO
Definition: windows.hpp:160
const std::vector< std::string > dnsOptions
Definition: docker.hpp:126
bool mknod
Definition: docker.hpp:78
Represents a POSIX or Windows file system path and offers common path manipulations.
Definition: path.hpp:145
static Try< RunOptions > create(const mesos::ContainerInfo &containerInfo, const mesos::CommandInfo &commandInfo, const std::string &containerName, const std::string &sandboxDirectory, const std::string &mappedDirectory, const Option< mesos::Resources > &resources=None(), bool enableCfsQuota=false, const Option< std::map< std::string, std::string >> &env=None(), const Option< std::vector< Device >> &devices=None(), const Option< mesos::internal::ContainerDNSInfo > &defaultContainerDNS=None())
Definition: duration.hpp:259
Describes how the I/O is redirected for stdin/stdout/stderr.
Definition: subprocess.hpp:61
std::vector< std::string > dnsSearch
Definition: docker.hpp:222
std::vector< std::string > additionalOptions
Definition: docker.hpp:240
void json(JSON::ObjectWriter *writer, const Task &task)
Definition: future.hpp:73
const std::string output
Definition: docker.hpp:96
static Try< process::Owned< Docker > > create(const std::string &path, const std::string &socket, bool validate=true, const Option< JSON::Object > &config=None())
Protocol< PromiseRequest, PromiseResponse > promise
uint32_t hostPort
Definition: docker.hpp:84
std::vector< PortMapping > portMappings
Definition: docker.hpp:228
static Try< Image > create(const JSON::Object &json)
Option< std::string > protocol
Definition: docker.hpp:86
Definition: docker.hpp:55
std::map< std::string, std::string > env
Definition: docker.hpp:204
URI image(const std::string &repository, const std::string &reference, const std::string ®istry, const Option< std::string > &scheme=None(), const Option< int > &port=None())
Definition: docker.hpp:30
Option< std::string > volumeDriver
Definition: docker.hpp:210
const std::vector< Device > devices
Definition: docker.hpp:120
Definition: version.hpp:41
virtual Try< Nothing > validateVersion(const Version &minVersion) const
const std::string id
Definition: docker.hpp:99
virtual std::string getPath()
Definition: docker.hpp:311
virtual ~Docker()
Definition: docker.hpp:65
Path hostPath
Definition: docker.hpp:69
Definition: docker.hpp:82
virtual process::Future< std::list< Container > > ps(bool all=false, const Option< std::string > &prefix=None()) const
const std::string name
Definition: docker.hpp:102
bool read
Definition: docker.hpp:76
virtual process::Future< Option< int > > run(const RunOptions &options, const process::Subprocess::IO &_stdout=process::Subprocess::FD(STDOUT_FILENO), const process::Subprocess::IO &_stderr=process::Subprocess::FD(STDERR_FILENO)) const
std::vector< std::string > volumes
Definition: docker.hpp:207
Option< std::string > entrypoint
Definition: docker.hpp:234
Option< std::string > name
Definition: docker.hpp:237
const Option< std::string > ip6Address
Definition: docker.hpp:118
Definition: docker.hpp:175
static Try< Container > create(const std::string &output)
Path containerPath
Definition: docker.hpp:70
virtual process::Future< Nothing > rm(const std::string &containerName, bool force=false) const
virtual process::Future< Nothing > stop(const std::string &containerName, const Duration &timeout=Seconds(0), bool remove=false) const
Definition: docker.hpp:157
Definition: future.hpp:57