115 lines
5.6 KiB
HTML
115 lines
5.6 KiB
HTML
<page-header title="'Create container'" breadcrumbs="[{label:'Containers', link:'docker.containers'}, 'Add container']"> </page-header>
|
|
|
|
<information-panel title-text="Caution" ng-if="state.mode == 'duplicate'">
|
|
<span class="small">
|
|
<p class="text-muted">
|
|
<pr-icon icon="'alert-triangle'" mode="'warning'" class-name="'mr-0.5'"></pr-icon>
|
|
The new container may fail to start if the image is changed, and settings from the previous container aren't compatible. Common causes include entrypoint, cmd or
|
|
<a href="https://docs.portainer.io/user/docker/containers/advanced" target="_blank">other settings</a> set by an image.
|
|
</p>
|
|
</span>
|
|
</information-panel>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-xs-12">
|
|
<rd-widget>
|
|
<rd-widget-body>
|
|
<form class="form-horizontal" autocomplete="off" ng-submit="create()">
|
|
<docker-create-container-base-form
|
|
is-loading="state.actionInProgress"
|
|
is-valid="isDuplicateValid"
|
|
values="formValues"
|
|
on-change="(onChange)"
|
|
></docker-create-container-base-form>
|
|
</form>
|
|
</rd-widget-body>
|
|
</rd-widget>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-xs-12">
|
|
<rd-widget>
|
|
<rd-widget-header icon="settings" title-text="Advanced container settings"></rd-widget-header>
|
|
<rd-widget-body>
|
|
<ul class="nav nav-pills nav-justified">
|
|
<li class="active interactive"><a data-target="#command" data-toggle="tab">Command & logging</a></li>
|
|
<li class="interactive"><a data-target="#volumes" data-toggle="tab">Volumes</a></li>
|
|
<li class="interactive"><a data-target="#network" data-toggle="tab">Network</a></li>
|
|
<li class="interactive"><a data-target="#env" data-toggle="tab">Env</a></li>
|
|
<li class="interactive"><a data-target="#labels" data-toggle="tab">Labels</a></li>
|
|
<li class="interactive"><a data-target="#restart-policy" data-toggle="tab">Restart policy</a></li>
|
|
<li class="interactive"><a data-target="#runtime-resources" ng-mouseup="refreshSlider()" data-toggle="tab">Runtime & Resources</a></li>
|
|
<li ng-if="areContainerCapabilitiesEnabled" class="interactive"><a data-target="#container-capabilities" data-toggle="tab">Capabilities</a></li>
|
|
</ul>
|
|
<div class="form-horizontal" ng-if="state.containerIsLoaded">
|
|
<!-- tab-content -->
|
|
<div class="tab-content">
|
|
<!-- tab-command -->
|
|
<div class="tab-pane active" id="command">
|
|
<docker-create-container-commands-tab
|
|
values="formValues.commands"
|
|
api-version="applicationState.endpoint.apiVersion"
|
|
on-change="(handleCommandsChange)"
|
|
></docker-create-container-commands-tab>
|
|
</div>
|
|
<!-- !tab-command -->
|
|
|
|
<div class="tab-pane" id="volumes">
|
|
<docker-create-container-volumes-tab ng-if="state.containerIsLoaded" values="formValues.volumes" on-change="(onVolumesChange)" allow-bind-mounts="allowBindMounts">
|
|
</docker-create-container-volumes-tab>
|
|
</div>
|
|
|
|
<div class="tab-pane" id="network">
|
|
<docker-create-container-network-tab values="formValues.network" on-change="(onNetworkChange)"> </docker-create-container-network-tab>
|
|
</div>
|
|
|
|
<div class="tab-pane" id="labels">
|
|
<docker-create-container-labels-tab values="formValues.labels" on-change="(onLabelsChange)"></docker-create-container-labels-tab>
|
|
</div>
|
|
|
|
<!-- tab-env -->
|
|
<div class="tab-pane" id="env">
|
|
<docker-create-container-env-vars-tab
|
|
ng-if="state.containerIsLoaded"
|
|
values="formValues.envVars"
|
|
on-change="(handleEnvVarsChange)"
|
|
></docker-create-container-env-vars-tab>
|
|
</div>
|
|
<!-- !tab-env -->
|
|
|
|
<div class="tab-pane" id="restart-policy">
|
|
<docker-create-container-restart-policy-tab values="formValues.restartPolicy" on-change="(onRestartPolicyChange)"></docker-create-container-restart-policy-tab>
|
|
</div>
|
|
|
|
<!-- tab-runtime-resources -->
|
|
<div class="tab-pane" id="runtime-resources">
|
|
<docker-create-container-resources-tab
|
|
values="formValues.resources"
|
|
on-change="(onResourcesChange)"
|
|
allow-privileged-mode="allowPrivilegedMode"
|
|
is-devices-field-visible="showDeviceMapping"
|
|
is-sysctl-field-visible="allowSysctl"
|
|
is-init-field-visible="applicationState.endpoint.apiVersion >= 1.37"
|
|
is-image-invalid="!formValues.RegistryModel.Image || (!formValues.RegistryModel.Registry && fromContainer)"
|
|
redeploy="(redeployUnlimitedResources)"
|
|
is-duplicate="state.mode == 'duplicate'"
|
|
validation-data="{
|
|
maxMemory: state.sliderMaxMemory,
|
|
maxCpu: state.sliderMaxCpu,
|
|
}"
|
|
></docker-create-container-resources-tab>
|
|
</div>
|
|
<!-- !tab-runtime-resources -->
|
|
<!-- tab-container-capabilities -->
|
|
<div class="tab-pane" id="container-capabilities">
|
|
<docker-create-container-capabilities-tab values="formValues.capabilities" on-change="(onCapabilitiesChange)"></docker-create-container-capabilities-tab>
|
|
</div>
|
|
<!-- !tab-container-capabilities -->
|
|
</div>
|
|
</div>
|
|
</rd-widget-body>
|
|
</rd-widget>
|
|
</div>
|
|
</div>
|