- Добавлена колонка 'Тип' во все таблицы истории сборок - Для push операций отображается registry вместо платформ - Сохранение пользователя при создании push лога - Исправлена ошибка с logger в push_docker_image endpoint - Улучшено отображение истории сборок с визуальными индикаторами
123 lines
4.4 KiB
HTML
123 lines
4.4 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Редактировать Dockerfile - DevOpsLab{% endblock %}
|
|
{% block page_title %}Редактировать Dockerfile: {{ dockerfile.name }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<form
|
|
hx-put="/api/v1/dockerfiles/{{ dockerfile.id }}"
|
|
hx-swap="none"
|
|
>
|
|
<div class="mb-3">
|
|
<label class="form-label">Название</label>
|
|
<input
|
|
type="text"
|
|
name="name"
|
|
class="form-control"
|
|
value="{{ dockerfile.name }}"
|
|
required
|
|
>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label">Базовый образ</label>
|
|
<input
|
|
type="text"
|
|
name="base_image"
|
|
class="form-control"
|
|
value="{{ dockerfile.base_image or '' }}"
|
|
placeholder="ubuntu:22.04"
|
|
>
|
|
<div class="form-text">
|
|
Базовый образ (например, ubuntu:22.04)
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label">Теги</label>
|
|
<input
|
|
type="text"
|
|
name="tags"
|
|
class="form-control"
|
|
value="{% if dockerfile.tags %}{{ dockerfile.tags | join(', ') }}{% endif %}"
|
|
placeholder="latest, v1.0, stable"
|
|
>
|
|
<div class="form-text">
|
|
Теги образа через запятую (например: latest, v1.0, stable)
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label">Описание</label>
|
|
<textarea
|
|
name="description"
|
|
class="form-control"
|
|
rows="3"
|
|
>{{ dockerfile.description or '' }}</textarea>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label">Dockerfile</label>
|
|
<textarea
|
|
id="dockerfile-content-editor"
|
|
class="form-control font-monospace"
|
|
rows="35"
|
|
>{{ dockerfile.content }}</textarea>
|
|
<input type="hidden" name="content" id="dockerfile-content-hidden">
|
|
<div class="form-text">
|
|
<i class="fas fa-info-circle me-1"></i>
|
|
Редактируйте содержимое Dockerfile. Подсветка синтаксиса включена.
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="d-flex gap-2">
|
|
<button type="submit" class="btn btn-primary">
|
|
<i class="fas fa-save me-2"></i>
|
|
Сохранить
|
|
</button>
|
|
<a href="/dockerfiles/{{ dockerfile.id }}/build" class="btn btn-success">
|
|
<i class="fas fa-hammer me-2"></i>
|
|
Сборка
|
|
</a>
|
|
<a href="/dockerfiles/{{ dockerfile.id }}/build-logs" class="btn btn-outline-primary">
|
|
<i class="fas fa-history me-2"></i>
|
|
История сборок
|
|
</a>
|
|
<a href="/dockerfiles/{{ dockerfile.id }}" class="btn btn-secondary">
|
|
<i class="fas fa-times me-2"></i>
|
|
Отмена
|
|
</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block scripts %}
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Инициализация редактора Dockerfile
|
|
if (typeof CodeEditor !== 'undefined') {
|
|
const dockerfileEditor = CodeEditor.init('dockerfile-content-editor', 'dockerfile', {
|
|
theme: 'monokai',
|
|
lineNumbers: true,
|
|
foldGutter: true
|
|
});
|
|
|
|
if (dockerfileEditor) {
|
|
dockerfileEditor.on('change', function() {
|
|
const content = dockerfileEditor.getValue();
|
|
// Сохраняем в hidden поле для отправки формы
|
|
document.getElementById('dockerfile-content-hidden').value = content;
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
});
|
|
</script>
|
|
{% endblock %}
|