diff --git a/src/tools/dockerfile-linter/dockerfile-linter.e2e.spec.ts b/src/tools/dockerfile-linter/dockerfile-linter.e2e.spec.ts
new file mode 100644
index 00000000..896afd55
--- /dev/null
+++ b/src/tools/dockerfile-linter/dockerfile-linter.e2e.spec.ts
@@ -0,0 +1,15 @@
+import { test, expect } from '@playwright/test';
+
+test.describe('Tool - Dockerfile linter', () => {
+  test.beforeEach(async ({ page }) => {
+    await page.goto('/dockerfile-linter');
+  });
+
+  test('Has correct title', async ({ page }) => {
+    await expect(page).toHaveTitle('Dockerfile linter - IT Tools');
+  });
+
+  test('', async ({ page }) => {
+
+  });
+});
\ No newline at end of file
diff --git a/src/tools/dockerfile-linter/dockerfile-linter.service.test.ts b/src/tools/dockerfile-linter/dockerfile-linter.service.test.ts
new file mode 100644
index 00000000..bea0d224
--- /dev/null
+++ b/src/tools/dockerfile-linter/dockerfile-linter.service.test.ts
@@ -0,0 +1,6 @@
+import { expect, describe, it } from 'vitest';
+// import { } from './dockerfile-linter.service';
+//
+// describe('dockerfile-linter', () => {
+//
+// })
\ No newline at end of file
diff --git a/src/tools/dockerfile-linter/dockerfile-linter.service.ts b/src/tools/dockerfile-linter/dockerfile-linter.service.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/src/tools/dockerfile-linter/dockerfile-linter.vue b/src/tools/dockerfile-linter/dockerfile-linter.vue
new file mode 100644
index 00000000..71f90386
--- /dev/null
+++ b/src/tools/dockerfile-linter/dockerfile-linter.vue
@@ -0,0 +1,12 @@
+
+  
+    Lorem ipsum
+  
+
+
+
+
+
\ No newline at end of file
diff --git a/src/tools/dockerfile-linter/index.ts b/src/tools/dockerfile-linter/index.ts
new file mode 100644
index 00000000..7b90d5b2
--- /dev/null
+++ b/src/tools/dockerfile-linter/index.ts
@@ -0,0 +1,12 @@
+import { ArrowsShuffle } from '@vicons/tabler';
+import { defineTool } from '../tool';
+
+export const tool = defineTool({
+  name: 'Dockerfile Linter',
+  path: '/dockerfile-linter',
+  description: '',
+  keywords: ['dockerfile', 'docker', 'linter'],
+  component: () => import('./dockerfile-linter.vue'),
+  icon: ArrowsShuffle,
+  createdAt: new Date('2025-01-01'),
+});
diff --git a/src/tools/index.ts b/src/tools/index.ts
index 388cfaf4..eb17efcf 100644
--- a/src/tools/index.ts
+++ b/src/tools/index.ts
@@ -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 emailNormalizer } from './email-normalizer';
+import { tool as dockerfileLinter } from './dockerfile-linter';
 
 import { tool as asciiTextDrawer } from './ascii-text-drawer';
 
@@ -155,6 +156,7 @@ export const toolsByCategory: ToolCategory[] = [
       sqlPrettify,
       chmodCalculator,
       dockerRunToDockerComposeConverter,
+      dockerfileLinter,
       xmlFormatter,
       yamlViewer,
       emailNormalizer,