poc of functions

This commit is contained in:
Sotig
2026-05-29 11:44:41 +03:00
parent 07cd9ebac9
commit 778380dc35
15 changed files with 924 additions and 56 deletions

View File

@@ -1,39 +1,16 @@
FROM ubuntu:plucky
RUN echo "deb https://ppa.launchpadcontent.net/longsleep/golang-backports/ubuntu ubuntu-plucky main" | tee /etc/apt/sources.list.d/docker.list
RUN apt update
ENV GO_VERSION=1.24
RUN apt install -y golang-${GO_VERSION}
RUN ln -s "/usr/lib/go-${GO_VERSION}/bin/go" /usr/local/bin/
RUN apt-get clean && apt-get update && apt-get install -y locales wget
RUN locale-gen en_US.UTF-8
RUN update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LC_CTYPE="en_US.UTF-8"
ENV LC_NUMERIC="en_US.UTF-8"
ENV LC_TIME="en_US.UTF-8"
ENV LC_COLLATE="en_US.UTF-8"
ENV LC_MONETARY="en_US.UTF-8"
ENV LC_MESSAGES="en_US.UTF-8"
ENV LC_PAPER="en_US.UTF-8"
ENV LC_NAME="en_US.UTF-8"
ENV LC_ADDRESS="en_US.UTF-8"
ENV LC_TELEPHONE="en_US.UTF-8"
ENV LC_MEASUREMENT="en_US.UTF-8"
ENV LC_IDENTIFICATION="en_US.UTF-8"
ENV LC_ALL=
RUN apt install -y prusa-slicer
WORKDIR /build
COPY ../ .
RUN go build -o /bin/slic3r-api ./cmd
RUN rm -rf /build/*
FROM fedora:45
CMD [ "/bin/slic3r-api" ]
RUN dnf install -y golang prusa-slicer f3d glibc-langpack-en nodejs npm && dnf clean all
RUN npm i -g nodemon@3.1.0
ENV LANG=en_US.UTF-8
WORKDIR /src
COPY ../docker/nodemon.json /run/nodemon.json
RUN dnf install fuser unzip -y
ENV LIBGL_ALWAYS_SOFTWARE=1
CMD [ "nodemon", "--config", "docker/nodemon.json" ]

22
docker/Dockerfile.prod Normal file
View File

@@ -0,0 +1,22 @@
FROM fedora:45
RUN dnf install -y golang prusa-slicer f3d glibc-langpack-en && dnf clean all
ENV LANG=en_US.UTF-8
WORKDIR /build
COPY ../uvtools /usr/share/uvtools
COPY ../go.mod go.mod
COPY ../go.sum go.sum
COPY ../cmd cmd
COPY ../configs configs
COPY ../internal internal
RUN go build -o /bin/slic3r-api ./cmd
RUN rm -rf /build/*
ENV LIBGL_ALWAYS_SOFTWARE=1
CMD [ "/bin/slic3r-api" ]

View File

@@ -1,15 +1,29 @@
services:
slic3r-api:
build:
build:
context: ../
dockerfile: docker/Dockerfile
command: /bin/bash -c "cd /src && go run ./cmd"
volumes:
- ../:/src
- ../configs:/configs
environment:
- PORT=3030
- HOST=0.0.0.0
- CONFIGS=/configs/
- HOST=0.0.0.0
- CONFIGS=/configs/
- VALKEY_URL=redis://valkey:6379
ports:
- 3030:3030
- 3030:3030
depends_on:
valkey:
condition: service_healthy
valkey:
image: valkey/valkey:8-alpine
command: valkey-server --maxmemory 256mb --maxmemory-policy allkeys-lru --appendonly yes
ports:
- 6379:6379
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5

7
docker/nodemon.json Normal file
View File

@@ -0,0 +1,7 @@
{
"verbose": true,
"ext": "go,mod",
"ignore": ["/src/vendor/*", "/src/build/*", "/src/.git/*"],
"exec": "fuser -n tcp -k 3030 || go run ./cmd",
"signal": "SIGKILL"
}