ci(docker): fixing docker systemctl problems and speed up builds process (#376)
* Made service commands available through frontend * image fix, grammar fix * fixed suggestions bug, some cleanup from old editor, svg edge case * FIX: save a file with special characters * DOCU: new community theme, multi cam setup * FIX: docker systemctl workaround * fixed systemctl problem, added delay for simulavr * chore, removed unused stuff * bump * fixed olds paths and changed base image for faster builds
This commit is contained in:
parent
4d2a61b8b7
commit
fc06389f32
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,3 +20,4 @@ docker/config/*.cfg
|
|||||||
docker/config/*.conf
|
docker/config/*.conf
|
||||||
docker/config/.mainsail.json
|
docker/config/.mainsail.json
|
||||||
docker/config/.theme
|
docker/config/.theme
|
||||||
|
.env
|
||||||
|
@ -6,16 +6,16 @@ services:
|
|||||||
dockerfile: api/Dockerfile
|
dockerfile: api/Dockerfile
|
||||||
image: mainsail-stack-api/1
|
image: mainsail-stack-api/1
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker/config:/home/node/printer_config
|
- ./docker/config:/home/node/klipper_config
|
||||||
- ./docker/logs:/tmp/logs
|
- ./docker/logs:/home/node/klipper_logs
|
||||||
- ./docker/gcode:/home/node/gcode
|
- ./docker/gcode:/home/node/gcode
|
||||||
- ./docker/config/moonraker:/home/node/.moonraker_database
|
- ./docker/config/moonraker:/home/node/.moonraker_database
|
||||||
container_name: ${APP_NAME}-stack-api
|
container_name: ${APP_NAME}-stack-api
|
||||||
ports:
|
ports:
|
||||||
- 7125:7125
|
- "7125:7125"
|
||||||
networks:
|
networks:
|
||||||
- dev_net
|
- dev_net
|
||||||
application:
|
npm:
|
||||||
build:
|
build:
|
||||||
context: ./docker
|
context: ./docker
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
@ -24,7 +24,7 @@ services:
|
|||||||
- ./:/home/node/mainsail
|
- ./:/home/node/mainsail
|
||||||
container_name: ${APP_NAME}-stack-npm
|
container_name: ${APP_NAME}-stack-npm
|
||||||
ports:
|
ports:
|
||||||
- 8080:8080
|
- "8080:8080"
|
||||||
depends_on:
|
depends_on:
|
||||||
- api
|
- api
|
||||||
networks:
|
networks:
|
||||||
|
@ -1,21 +1,17 @@
|
|||||||
FROM debian:buster AS base
|
FROM python:3-slim-buster AS base
|
||||||
|
|
||||||
RUN groupadd --force -g 1000 node
|
RUN groupadd --force -g 1000 node
|
||||||
RUN useradd -ms /bin/bash --no-user-group -g 1000 -u 1000 node
|
RUN useradd -ms /bin/bash --no-user-group -g 1000 -u 1000 node
|
||||||
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install -y sudo wget cmake swig git virtualenv python-dev libffi-dev build-essential libncurses-dev libusb-dev avrdude gcc-avr binutils-avr avr-libc dfu-util libnewlib-arm-none-eabi gcc-arm-none-eabi binutils-arm-none-eabi libusb-1.0
|
RUN apt-get install -y sudo wget cmake swig git virtualenv python-dev libffi-dev \
|
||||||
|
build-essential libncurses-dev libusb-dev avrdude gcc-avr binutils-avr avr-libc \
|
||||||
|
dfu-util libnewlib-arm-none-eabi gcc-arm-none-eabi binutils-arm-none-eabi libusb-1.0
|
||||||
RUN mkdir /src
|
RUN mkdir /src
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
RUN wget http://download.savannah.nongnu.org/releases/simulavr/libsim_1.1.0_amd64.deb
|
RUN wget http://download.savannah.nongnu.org/releases/simulavr/libsim_1.1.0_amd64.deb
|
||||||
RUN apt install /src/libsim_1.1.0_amd64.deb
|
RUN apt install /src/libsim_1.1.0_amd64.deb
|
||||||
|
|
||||||
#prebuild files for simulavr, not needed currently, because we just build the python lib later
|
|
||||||
#RUN wget http://download.savannah.nongnu.org/releases/simulavr/simulavr_1.1.0_amd64.deb
|
|
||||||
#RUN apt install /src/simulavr_1.1.0_amd64.deb
|
|
||||||
#RUN wget http://download.savannah.nongnu.org/releases/simulavr/python3-simulavr_1.1.0_amd64.deb
|
|
||||||
#RUN apt install /src/python3-simulavr_1.1.0_amd64.deb
|
|
||||||
|
|
||||||
RUN cat /etc/passwd
|
RUN cat /etc/passwd
|
||||||
|
|
||||||
RUN echo 'node ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/node && \
|
RUN echo 'node ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/node && \
|
||||||
@ -27,7 +23,7 @@ RUN ln -s /bin/true /bin/systemctl
|
|||||||
USER node
|
USER node
|
||||||
|
|
||||||
WORKDIR /home/node
|
WORKDIR /home/node
|
||||||
RUN git clone https://github.com/KevinOConnor/klipper
|
RUN git clone https://github.com/klipper3d/klipper
|
||||||
WORKDIR /home/node/klipper
|
WORKDIR /home/node/klipper
|
||||||
COPY api/simulavr.config /home/node/klipper/.config
|
COPY api/simulavr.config /home/node/klipper/.config
|
||||||
RUN make
|
RUN make
|
||||||
@ -46,7 +42,6 @@ RUN sed -E 's/check_klipper\(\)/check_klipper() { return 0; }\nold()/' /home/nod
|
|||||||
RUN chmod +x /home/node/moonraker/scripts/install-moonraker2.sh
|
RUN chmod +x /home/node/moonraker/scripts/install-moonraker2.sh
|
||||||
RUN /home/node/moonraker/scripts/install-moonraker2.sh
|
RUN /home/node/moonraker/scripts/install-moonraker2.sh
|
||||||
|
|
||||||
RUN sudo rm -f /bin/systemctl
|
|
||||||
#restore backed up systemctl command
|
#restore backed up systemctl command
|
||||||
#RUN sudo mv /bin/systemctl.bak /bin/systemctl
|
#RUN sudo mv /bin/systemctl.bak /bin/systemctl
|
||||||
|
|
||||||
@ -54,13 +49,17 @@ WORKDIR /home/node/
|
|||||||
RUN git clone https://git.savannah.nongnu.org/git/simulavr.git
|
RUN git clone https://git.savannah.nongnu.org/git/simulavr.git
|
||||||
WORKDIR /home/node/simulavr
|
WORKDIR /home/node/simulavr
|
||||||
RUN make python
|
RUN make python
|
||||||
RUN make build
|
RUN make build -j8
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
RUN rm /bin/systemctl
|
||||||
|
|
||||||
COPY api/run-api /usr/local/bin/run-api
|
RUN apt-get -y install supervisor
|
||||||
RUN chmod +x /usr/local/bin/run-api
|
|
||||||
|
|
||||||
USER node
|
RUN ln -s /usr/bin/supervisorctl /bin/systemctl
|
||||||
|
|
||||||
ENTRYPOINT ["run-api"]
|
RUN mkdir -p /var/log/supervisor
|
||||||
|
COPY api/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY api/start-api /bin/start-api
|
||||||
|
RUN chmod +x /bin/start-api
|
||||||
|
ENTRYPOINT ["/bin/start-api"]
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
PYTHONPATH="/home/node/simulavr/build/pysimulavr/" /home/node/klipper/scripts/avrsim.py -m atmega644 -s 20000000 -b 250000 /home/node/klipper/simulavr.elf &
|
|
||||||
/home/node/klippy-env/bin/python /home/node/klipper/klippy/klippy.py /home/node/printer_config/printer.cfg -l /tmp/logs/klippy.log -a /tmp/klippy_uds &
|
|
||||||
/home/node/moonraker-env/bin/python /home/node/moonraker/moonraker/moonraker.py -l /tmp/logs/moonraker.log -c /home/node/printer_config/moonraker.conf &
|
|
||||||
echo "Starting ..." >> /tmp/logs/klippy.log
|
|
||||||
tail -f /tmp/logs/klippy.log
|
|
3
docker/api/start-api
Normal file
3
docker/api/start-api
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
chown -hR node:node /home/node/klipper_logs
|
||||||
|
/usr/bin/supervisord
|
38
docker/api/supervisord.conf
Normal file
38
docker/api/supervisord.conf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
[supervisord]
|
||||||
|
#logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
|
||||||
|
logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
|
||||||
|
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
|
||||||
|
loglevel=info ; (log level;default info; others: debug,warn,trace)
|
||||||
|
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
|
||||||
|
nodaemon=true ; (start in foreground if true;default false)
|
||||||
|
minfds=1024 ; (min. avail startup file descriptors;default 1024)
|
||||||
|
minprocs=200 ; (min. avail process descriptors;default 200)
|
||||||
|
|
||||||
|
[program:simulavr]
|
||||||
|
command=bash -c 'sleep 10 && /home/node/klipper/scripts/avrsim.py -m atmega644 -s 20000000 -b 250000 /home/node/klipper/simulavr.elf'
|
||||||
|
environment=PYTHONPATH=/home/node/simulavr/build/pysimulavr/
|
||||||
|
user=node
|
||||||
|
process_name=simulavr
|
||||||
|
directory=/home/node
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
redirect_stderr=true
|
||||||
|
|
||||||
|
[program:klipper]
|
||||||
|
command=/home/node/klippy-env/bin/python /home/node/klipper/klippy/klippy.py /home/node/klipper_config/printer.cfg -l /home/node/klipper_logs/klippy.log -a /tmp/klippy_uds
|
||||||
|
user=node
|
||||||
|
process_name=klipper
|
||||||
|
directory=/home/node
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
redirect_stderr=true
|
||||||
|
|
||||||
|
|
||||||
|
[program:moonraker]
|
||||||
|
command=/home/node/moonraker-env/bin/python /home/node/moonraker/moonraker/moonraker.py -l /home/node/klipper_logs/moonraker.log -c /home/node/klipper_config/moonraker.conf
|
||||||
|
user=node
|
||||||
|
process_name=moonraker
|
||||||
|
directory=/home/node
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
redirect_stderr=true
|
@ -6,7 +6,7 @@ path: ~/gcode
|
|||||||
|
|
||||||
[mcu]
|
[mcu]
|
||||||
serial: /tmp/pseudoserial
|
serial: /tmp/pseudoserial
|
||||||
pin_map: arduino
|
restart_method: arduino
|
||||||
baud: 250000
|
baud: 250000
|
||||||
|
|
||||||
[stepper_x]
|
[stepper_x]
|
||||||
@ -110,70 +110,3 @@ max_z_accel: 100
|
|||||||
# G28 Y0
|
# G28 Y0
|
||||||
# G28 X0
|
# G28 X0
|
||||||
# G28 Z0
|
# G28 Z0
|
||||||
|
|
||||||
[gcode_macro PAUSE]
|
|
||||||
rename_existing: BASE_PAUSE
|
|
||||||
default_parameter_X: 230 #edit to your park position
|
|
||||||
default_parameter_Y: 230 #edit to your park position
|
|
||||||
default_parameter_Z: 10 #edit to your park position
|
|
||||||
default_parameter_E: 1 #edit to your retract length
|
|
||||||
gcode:
|
|
||||||
SAVE_GCODE_STATE NAME=PAUSE_state
|
|
||||||
BASE_PAUSE
|
|
||||||
G91
|
|
||||||
G1 E-{E} F2100
|
|
||||||
G1 Z{Z}
|
|
||||||
G90
|
|
||||||
G1 X{X} Y{Y} F6000
|
|
||||||
[gcode_macro RESUME]
|
|
||||||
rename_existing: BASE_RESUME
|
|
||||||
default_parameter_E: 1 #edit to your retract length
|
|
||||||
gcode:
|
|
||||||
G91
|
|
||||||
G1 E{E} F2100
|
|
||||||
G90
|
|
||||||
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
|
|
||||||
BASE_RESUME
|
|
||||||
[gcode_macro CANCEL_PRINT]
|
|
||||||
rename_existing: BASE_CANCEL_PRINT
|
|
||||||
gcode:
|
|
||||||
TURN_OFF_HEATERS
|
|
||||||
CLEAR_PAUSE
|
|
||||||
SDCARD_RESET_FILE
|
|
||||||
BASE_CANCEL_PRINT
|
|
||||||
|
|
||||||
[gcode_macro START_PRINT]
|
|
||||||
default_parameter_BED_TEMP: 103.3
|
|
||||||
default_parameter_EXTRUDER_TEMP: 103.3
|
|
||||||
gcode:
|
|
||||||
# Start bed heating
|
|
||||||
M140 S103.3
|
|
||||||
# Use absolute coordinates
|
|
||||||
G90
|
|
||||||
# Reset the G-Code Z offset (adjust Z offset if needed)
|
|
||||||
SET_GCODE_OFFSET Z=0.0
|
|
||||||
# Home the printer
|
|
||||||
G28
|
|
||||||
# Move the nozzle near the bed
|
|
||||||
G1 Z5 F3000
|
|
||||||
# Move the nozzle very close to the bed
|
|
||||||
G1 Z0.15 F300
|
|
||||||
# Wait for bed to reach temperature
|
|
||||||
M190 S103.3
|
|
||||||
# Set and wait for nozzle to reach temperature
|
|
||||||
M109 S103.3
|
|
||||||
|
|
||||||
[gcode_macro END_PRINT]
|
|
||||||
gcode:
|
|
||||||
# Turn off bed, extruder, and fan
|
|
||||||
M140 S0
|
|
||||||
M104 S0
|
|
||||||
M106 S0
|
|
||||||
# Move nozzle away from print while retracting
|
|
||||||
G91
|
|
||||||
G1 X-2 Y-2 E-3 F300
|
|
||||||
# Raise nozzle by 10mm
|
|
||||||
G1 Z10 F3000
|
|
||||||
G90
|
|
||||||
# Disable steppers
|
|
||||||
M84
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user