Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f49a778035 | ||
|
|
395549aec9 | ||
|
|
94dd6067ca | ||
|
|
aee5734e74 | ||
|
|
235db9dae5 | ||
|
|
84d22248a4 | ||
|
|
207468d0f0 | ||
|
|
1409e45f8d | ||
|
|
e8306d67b6 | ||
|
|
d60614ada7 | ||
|
|
a287d7b2b4 | ||
|
|
48d34f3f58 | ||
|
|
098924a8f9 | ||
|
|
2d2ff05987 |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -38,3 +38,10 @@ updates:
|
||||
- "automerge"
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/e2e"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "automerge"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
2
.github/workflows/deploy.yml
vendored
2
.github/workflows/deploy.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1.6.0
|
||||
uses: docker/setup-buildx-action@v1.7.0
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1.14.1
|
||||
with:
|
||||
|
||||
2
.github/workflows/dev.yml
vendored
2
.github/workflows/dev.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1.6.0
|
||||
uses: docker/setup-buildx-action@v1.7.0
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1.14.1
|
||||
with:
|
||||
|
||||
10
.github/workflows/test.yml
vendored
10
.github/workflows/test.yml
vendored
@@ -47,9 +47,15 @@ jobs:
|
||||
run: docker-compose -f e2e/docker-compose.yml build
|
||||
- name: Set commit message for push
|
||||
if: github.event_name == 'push'
|
||||
run: echo "GIT_LOG_MESSAGE=$(git log -1 --pretty=%B ${GITHUB_SHA})" >> $GITHUB_ENV
|
||||
run: |
|
||||
echo "GIT_LOG_MESSAGE<<EOF" >> $GITHUB_ENV
|
||||
git log -1 --pretty=%B ${GITHUB_SHA} >> $GITHUB_ENV
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
- name: Set commit message for pull request
|
||||
if: github.event_name == 'pull_request'
|
||||
run: echo "GIT_LOG_MESSAGE=$(git log -1 --pretty=%B ${{github.event.pull_request.head.sha}})" >> $GITHUB_ENV
|
||||
run: |
|
||||
echo "GIT_LOG_MESSAGE<<EOF" >> $GITHUB_ENV
|
||||
git log -1 --pretty=%B ${{github.event.pull_request.head.sha}} >> $GITHUB_ENV
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
- name: Run tests
|
||||
run: docker-compose -f e2e/docker-compose.yml up --build --force-recreate --exit-code-from cypress
|
||||
|
||||
12
Dockerfile
12
Dockerfile
@@ -1,7 +1,8 @@
|
||||
# Build assets
|
||||
FROM node:17-alpine as node
|
||||
FROM node:18-alpine as node
|
||||
|
||||
RUN apk add --no-cache git openssh make g++ util-linux python3 && npm install -g pnpm
|
||||
|
||||
RUN apk add --no-cache git openssh make g++ util-linux curl python3 && curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
@@ -16,10 +17,7 @@ COPY package.json .* vite.config.ts index.html ./
|
||||
COPY assets ./assets
|
||||
|
||||
# Install dependencies
|
||||
RUN pnpm install -r --offline --prod
|
||||
|
||||
# Do the build
|
||||
RUN pnpm build
|
||||
RUN pnpm install -r --offline --prod --ignore-scripts && pnpm build
|
||||
|
||||
FROM golang:1.18.1-alpine AS builder
|
||||
|
||||
@@ -48,7 +46,7 @@ RUN CGO_ENABLED=0 go build -ldflags "-s -w -X main.version=$TAG" -o dozzle
|
||||
|
||||
FROM scratch
|
||||
|
||||
ENV PATH=/bin
|
||||
ENV PATH /bin
|
||||
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
COPY --from=builder /dozzle/dozzle /dozzle
|
||||
|
||||
10
assets/components.d.ts
vendored
10
assets/components.d.ts
vendored
@@ -5,8 +5,6 @@ import '@vue/runtime-core'
|
||||
|
||||
declare module '@vue/runtime-core' {
|
||||
export interface GlobalComponents {
|
||||
CarbonCaretDown: typeof import('~icons/carbon/caret-down')['default']
|
||||
CilColumns: typeof import('~icons/cil/columns')['default']
|
||||
CilFindInPage: typeof import('~icons/cil/find-in-page')['default']
|
||||
ContainerStat: typeof import('./components/ContainerStat.vue')['default']
|
||||
ContainerTitle: typeof import('./components/ContainerTitle.vue')['default']
|
||||
@@ -19,15 +17,7 @@ declare module '@vue/runtime-core' {
|
||||
LogViewer: typeof import('./components/LogViewer.vue')['default']
|
||||
LogViewerWithSource: typeof import('./components/LogViewerWithSource.vue')['default']
|
||||
MdiDotsVertical: typeof import('~icons/mdi/dots-vertical')['default']
|
||||
MdiLightChevronDoubleDown: typeof import('~icons/mdi-light/chevron-double-down')['default']
|
||||
MdiLightChevronLeft: typeof import('~icons/mdi-light/chevron-left')['default']
|
||||
MdiLightChevronRight: typeof import('~icons/mdi-light/chevron-right')['default']
|
||||
MdiLightCog: typeof import('~icons/mdi-light/cog')['default']
|
||||
MdiLightMagnify: typeof import('~icons/mdi-light/magnify')['default']
|
||||
MobileMenu: typeof import('./components/MobileMenu.vue')['default']
|
||||
OcticonContainer24: typeof import('~icons/octicon/container24')['default']
|
||||
OcticonDownload24: typeof import('~icons/octicon/download24')['default']
|
||||
OcticonTrash24: typeof import('~icons/octicon/trash24')['default']
|
||||
PastTime: typeof import('./components/PastTime.vue')['default']
|
||||
RelativeTime: typeof import('./components/RelativeTime.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
|
||||
@@ -157,7 +157,7 @@ const hasUpdate = ref(false);
|
||||
|
||||
async function fetchNextRelease() {
|
||||
if (!["dev", "master"].includes(currentVersion)) {
|
||||
const response = await fetch("https://api.github.com/repos/dozzle/dozzle/releases/latest");
|
||||
const response = await fetch("https://api.github.com/repos/amir20/dozzle/releases/latest");
|
||||
if (response.ok) {
|
||||
const releases = await response.json();
|
||||
hasUpdate.value = gt(releases[0].tag_name, currentVersion);
|
||||
|
||||
@@ -40,13 +40,23 @@ export const useContainerStore = defineStore("container", () => {
|
||||
},
|
||||
false
|
||||
);
|
||||
// es.addEventListener("container-die", (e) => store.dispatch("UPDATE_CONTAINER", JSON.parse(e.data)), false);
|
||||
es.addEventListener(
|
||||
"container-die",
|
||||
(e) => {
|
||||
const event = JSON.parse((e as MessageEvent).data) as { actorId: string };
|
||||
const container = allContainersById.value[event.actorId];
|
||||
if (container) {
|
||||
container.state = "dead";
|
||||
}
|
||||
},
|
||||
false
|
||||
);
|
||||
|
||||
const currentContainer = (id: Ref<string>) => computed(() => allContainersById.value[id.value]);
|
||||
const appendActiveContainer = ({ id }: Container) => activeContainerIds.value.push(id);
|
||||
const removeActiveContainer = ({ id }: Container) =>
|
||||
activeContainerIds.value.splice(activeContainerIds.value.indexOf(id), 1);
|
||||
|
||||
|
||||
return {
|
||||
containers,
|
||||
activeContainerIds,
|
||||
|
||||
2
assets/types/Container.d.ts
vendored
2
assets/types/Container.d.ts
vendored
@@ -3,8 +3,8 @@ export interface Container {
|
||||
readonly created: number;
|
||||
readonly image: string;
|
||||
readonly name: string;
|
||||
readonly state: "created" | "running" | "exited" | "dead" | "paused" | "restarting";
|
||||
readonly status: string;
|
||||
state: "created" | "running" | "exited" | "dead" | "paused" | "restarting";
|
||||
stat?: ContainerStat;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM cypress/included:9.5.4
|
||||
FROM cypress/included:9.6.0
|
||||
|
||||
RUN apt install curl && curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm
|
||||
|
||||
|
||||
32
package.json
32
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dozzle",
|
||||
"version": "3.12.1",
|
||||
"version": "3.12.3",
|
||||
"description": "Realtime log viewer for docker containers. ",
|
||||
"homepage": "https://github.com/amir20/dozzle#readme",
|
||||
"bugs": {
|
||||
@@ -22,53 +22,53 @@
|
||||
"postinstall": "husky install"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iconify-json/carbon": "^1.1.3",
|
||||
"@iconify-json/carbon": "^1.1.4",
|
||||
"@iconify-json/cil": "^1.1.1",
|
||||
"@iconify-json/mdi": "^1.1.9",
|
||||
"@iconify-json/mdi": "^1.1.10",
|
||||
"@iconify-json/mdi-light": "^1.1.1",
|
||||
"@iconify-json/octicon": "^1.1.6",
|
||||
"@oruga-ui/oruga-next": "^0.5.4",
|
||||
"@oruga-ui/theme-bulma": "^0.2.5",
|
||||
"@vitejs/plugin-vue": "^2.3.1",
|
||||
"@vue/compiler-sfc": "^3.2.33",
|
||||
"@vueuse/core": "^8.2.6",
|
||||
"@vueuse/router": "^8.2.6",
|
||||
"@vueuse/core": "^8.3.1",
|
||||
"@vueuse/router": "^8.3.1",
|
||||
"ansi-to-html": "^0.7.2",
|
||||
"bulma": "^0.9.3",
|
||||
"date-fns": "^2.28.0",
|
||||
"fuzzysort": "^1.2.1",
|
||||
"hotkeys-js": "^3.8.9",
|
||||
"hotkeys-js": "^3.9.2",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"pinia": "^2.0.13",
|
||||
"sass": "^1.50.0",
|
||||
"sass": "^1.51.0",
|
||||
"semver": "^7.3.7",
|
||||
"splitpanes": "^3.1.1",
|
||||
"typescript": "^4.6.2",
|
||||
"typescript": "^4.6.4",
|
||||
"unplugin-auto-import": "^0.7.1",
|
||||
"unplugin-icons": "^0.14.1",
|
||||
"unplugin-vue-components": "^0.19.3",
|
||||
"vite": "^2.9.5",
|
||||
"vite": "^2.9.7",
|
||||
"vue": "^3.2.33",
|
||||
"vue-router": "^4.0.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@pinia/testing": "^0.0.11",
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/lodash.debounce": "^4.0.6",
|
||||
"@types/node": "^17.0.24",
|
||||
"@types/lodash.debounce": "^4.0.7",
|
||||
"@types/node": "^17.0.31",
|
||||
"@types/semver": "^7.3.9",
|
||||
"@vue/test-utils": "^2.0.0-rc.20",
|
||||
"c8": "^7.11.0",
|
||||
"@vue/test-utils": "^2.0.0-rc.21",
|
||||
"c8": "^7.11.2",
|
||||
"eventsourcemock": "^2.0.0",
|
||||
"husky": "^7.0.4",
|
||||
"jest-serializer-vue": "^2.0.2",
|
||||
"jsdom": "^19.0.0",
|
||||
"lint-staged": "^12.3.8",
|
||||
"lint-staged": "^12.4.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^2.6.2",
|
||||
"release-it": "^14.14.2",
|
||||
"release-it": "^15.0.0",
|
||||
"ts-node": "^10.6.0",
|
||||
"vitest": "^0.9.3"
|
||||
"vitest": "^0.10.0"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,vue,css}": [
|
||||
|
||||
1160
pnpm-lock.yaml
generated
1160
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user