feat(docker/container): support --shm-size configuration [EE-550] (#7547)

pull/7590/head
Oscar Zhou 2022-08-30 09:22:27 +12:00 committed by GitHub
parent 6536d36c24
commit d24e5ff71e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View File

@ -89,6 +89,7 @@ angular.module('portainer.docker').controller('CreateContainerController', [
CpuLimit: 0, CpuLimit: 0,
MemoryLimit: 0, MemoryLimit: 0,
MemoryReservation: 0, MemoryReservation: 0,
ShmSize: 64,
CmdMode: 'default', CmdMode: 'default',
EntrypointMode: 'default', EntrypointMode: 'default',
Env: [], Env: [],
@ -414,6 +415,13 @@ angular.module('portainer.docker').controller('CreateContainerController', [
} }
function prepareResources(config) { function prepareResources(config) {
// Shared Memory Size - Round to 0.125
if ($scope.formValues.ShmSize >= 0) {
var shmSize = (Math.round($scope.formValues.ShmSize * 8) / 8).toFixed(3);
shmSize *= 1024 * 1024;
config.HostConfig.ShmSize = shmSize;
}
// Memory Limit - Round to 0.125 // Memory Limit - Round to 0.125
if ($scope.formValues.MemoryLimit >= 0) { if ($scope.formValues.MemoryLimit >= 0) {
var memoryLimit = (Math.round($scope.formValues.MemoryLimit * 8) / 8).toFixed(3); var memoryLimit = (Math.round($scope.formValues.MemoryLimit * 8) / 8).toFixed(3);
@ -695,6 +703,9 @@ angular.module('portainer.docker').controller('CreateContainerController', [
if (d.HostConfig.MemoryReservation) { if (d.HostConfig.MemoryReservation) {
$scope.formValues.MemoryReservation = d.HostConfig.MemoryReservation / 1024 / 1024; $scope.formValues.MemoryReservation = d.HostConfig.MemoryReservation / 1024 / 1024;
} }
if (d.HostConfig.ShmSize) {
$scope.formValues.ShmSize = d.HostConfig.ShmSize / 1024 / 1024;
}
} }
function loadFromContainerCapabilities(d) { function loadFromContainerCapabilities(d) {

View File

@ -695,6 +695,17 @@
<!-- !sysctls-input-list --> <!-- !sysctls-input-list -->
</div> </div>
<!-- !sysctls --> <!-- !sysctls -->
<!-- shm-size-input -->
<div class="form-group">
<label for="shm-size" class="col-sm-2 control-label text-left"> Shared memory size </label>
<div class="col-sm-2">
<input type="number" min="1" class="form-control" ng-model="formValues.ShmSize" id="shm-size" />
</div>
<div class="col-sm-2">
<p class="small text-muted mt-2"> Size of /dev/shm (<b>MB</b>) </p>
</div>
</div>
<!-- !shm-size-input -->
<!-- #region GPU --> <!-- #region GPU -->
<div class="col-sm-12 form-section-title"> GPU </div> <div class="col-sm-12 form-section-title"> GPU </div>