feat(new-tool): Docker Run command(s) to Kubernetes manifests

Fix #883
This commit is contained in:
ShareVB 2024-02-18 20:13:15 +01:00
parent 377d6ec1bf
commit a10caaa503
6 changed files with 172 additions and 14 deletions

View file

@ -0,0 +1,50 @@
<script setup lang="ts">
import { convert as docker2kube } from 'docker2kube';
import composerize from 'composerize';
import TextareaCopyable from '@/components/TextareaCopyable.vue';
const dockerRuns = ref(
'docker run -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro --restart always nginx',
);
const conversionResult = computed(() => {
try {
return { yaml: docker2kube(composerize(dockerRuns.value.trim())), errors: [] };
}
catch (e: any) {
return { yaml: '#see error messages', errors: e.toString().split('\n') };
}
});
const kuebYaml = computed(() => conversionResult.value.yaml);
const errors = computed(() => conversionResult.value.errors);
</script>
<template>
<div>
<c-input-text
v-model:value="dockerRuns"
label="Your docker run command(s):"
style="font-family: monospace"
multiline
raw-text
monospace
placeholder="Your docker run command(s) to convert..."
rows="4"
/>
<n-divider />
<TextareaCopyable :value="kuebYaml" language="yaml" />
<div v-if="errors.length > 0">
<n-alert title="The following errors occured" type="error" mt-5>
<ul>
<li v-for="(message, index) of errors" :key="index">
{{ message }}
</li>
</ul>
</n-alert>
</div>
</div>
</template>

View file

@ -0,0 +1,12 @@
import { BrandDocker } from '@vicons/tabler';
import { defineTool } from '../tool';
export const tool = defineTool({
name: 'Docker run to kubernetes',
path: '/docker-run-to-kubernetes',
description: 'Docker run command(s) to Kubernetes manifests',
keywords: ['docker', 'run', 'convert', 'kubernetes'],
component: () => import('./docker-run-to-kubernetes.vue'),
icon: BrandDocker,
createdAt: new Date('2024-02-18'),
});

View file

@ -2,6 +2,7 @@ import { tool as base64FileConverter } from './base64-file-converter';
import { tool as base64StringConverter } from './base64-string-converter';
import { tool as basicAuthGenerator } from './basic-auth-generator';
import { tool as textToUnicode } from './text-to-unicode';
import { tool as dockerRunToKubernetesConverter } from './docker-run-to-kubernetes';
import { tool as pdfSignatureChecker } from './pdf-signature-checker';
import { tool as numeronymGenerator } from './numeronym-generator';
import { tool as macAddressGenerator } from './mac-address-generator';
@ -141,6 +142,7 @@ export const toolsByCategory: ToolCategory[] = [
sqlPrettify,
chmodCalculator,
dockerRunToDockerComposeConverter,
dockerRunToKubernetesConverter,
xmlFormatter,
yamlViewer,
],