llm, switch open-terminal over to compose so that build dependencies are persistent.
This commit is contained in:
1 parent
0e1648cc31
commit
65aeea9a93
1 file changed
+111
-65
@@ -228,10 +228,11 @@
|
||||
- "{{ qwen_code }}"
|
||||
state: present
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | Docker
|
||||
- name: Workstation | Linux | Software | LLMs | Docker | Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- docker
|
||||
- docker-compose
|
||||
state: present
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | Docker | runit
|
||||
@@ -521,7 +522,14 @@
|
||||
ansible.builtin.file:
|
||||
name: "/var/log/open-terminal"
|
||||
state: directory
|
||||
owner: "{{ user }}"
|
||||
owner: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Dir | /usr/local/etc
|
||||
ansible.builtin.file:
|
||||
name: "/usr/local/etc/open-terminal"
|
||||
state: directory
|
||||
owner: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | AI-Sandbox | Dir
|
||||
@@ -543,7 +551,6 @@
|
||||
|
||||
export ANDROID_HOME="{{ user_user.home }}/SDKs/Android/Sdk"
|
||||
export GRADLE_USER_HOME={{ user_user.home }}/.gradle
|
||||
export GRADLE_HOME={{ user_user.home }}/.gradle
|
||||
export PATH="$ANDROID_HOME/platform-tools:$PATH"
|
||||
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
|
||||
|
||||
@@ -643,83 +650,127 @@
|
||||
group: "{{ user }}"
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Compose YAML
|
||||
ansible.builtin.copy:
|
||||
dest: /usr/local/etc/open-terminal/docker-compose.yml
|
||||
content: |
|
||||
#exec docker run \
|
||||
# --name open-terminal \
|
||||
# --network=host \
|
||||
# -v {{ user_user.home }}/AI-Sandbox:/home/user \
|
||||
# -v {{ user_user.home }}/Code:{{ user_user.home }}/Code \
|
||||
# -v {{ user_user.home }}/SDKs:{{ user_user.home }}/SDKs \
|
||||
# -v {{ jdk_jvm }}:{{ jdk_jvm }}:ro \
|
||||
# -v {{ jdk_etc }}:{{ jdk_etc }}:ro \
|
||||
# -v {{ jdk_etc17 }}:{{ jdk_etc17 }}:ro \
|
||||
# -v {{ jdk_etc21 }}:{{ jdk_etc21 }}:ro \
|
||||
# -v {{ jdk_etc25 }}:{{ jdk_etc25 }}:ro \
|
||||
# -v /etc/hosts:/etc/hosts:ro \
|
||||
# -v {{ user_user.home }}/.gradle:{{ user_user.home }}/.gradle \
|
||||
# -v {{ user_user.home }}/.pub-cache:{{ user_user.home }}/.pub-cache \
|
||||
# -e OPEN_TERMINAL_FILE_BROWSER_ROOT="/home/user" \
|
||||
# -e OPEN_TERMINAL_API_KEY="{{ open_terminal_key }}" \
|
||||
# -e OPEN_TERMINAL_PACKAGES="$packages" \
|
||||
# -e GOT_EM="$GOT_EM" \
|
||||
# $image run --port {{ open_terminal_port }}
|
||||
|
||||
services:
|
||||
open-terminal:
|
||||
build:
|
||||
context: ./
|
||||
network: host
|
||||
container_name: open-terminal
|
||||
network_mode: host
|
||||
command: run --port {{ open_terminal_port }}
|
||||
environment:
|
||||
- OPEN_TERMINAL_FILE_BROWSER_ROOT=/home/user
|
||||
- OPEN_TERMINAL_API_KEY={{ open_terminal_key }}
|
||||
- OPEN_TERMINAL_PACKAGES=
|
||||
- GOT_EM=true
|
||||
volumes:
|
||||
- {{ user_user.home }}/AI-Sandbox:/home/user
|
||||
- {{ user_user.home }}/Code:{{ user_user.home }}/Code
|
||||
- {{ user_user.home }}/SDKs:{{ user_user.home }}/SDKs
|
||||
- {{ jdk_jvm }}:{{ jdk_jvm }}:ro
|
||||
- {{ jdk_etc }}:{{ jdk_etc }}:ro
|
||||
- {{ jdk_etc17 }}:{{ jdk_etc17 }}:ro
|
||||
- {{ jdk_etc21 }}:{{ jdk_etc21 }}:ro
|
||||
- {{ jdk_etc25 }}:{{ jdk_etc25 }}:ro
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- {{ user_user.home }}/.gradle:{{ user_user.home }}/.gradle
|
||||
- {{ user_user.home }}/.pub-cache:{{ user_user.home }}/.pub-cache
|
||||
owner: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Dockerfile
|
||||
ansible.builtin.copy:
|
||||
dest: /usr/local/etc/open-terminal/Dockerfile
|
||||
content: |
|
||||
FROM ghcr.io/open-webui/open-terminal:latest
|
||||
|
||||
USER root
|
||||
|
||||
RUN echo "Android"
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libc6:amd64 libncurses-dev \
|
||||
libstdc++6 lib32z1 libbz2-1.0 android-udev-rules
|
||||
# Debian removed JDK 17, continue serving from the host.
|
||||
# default-jdk openjdk-17-jdk
|
||||
|
||||
RUN echo "Flutter (Main)"
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl git unzip xz-utils zip libglu1-mesa libglu1-mesa
|
||||
|
||||
RUN echo "Flutter (Linux)"
|
||||
RUN apt-get update && apt-get install -y \
|
||||
clang cmake git ninja-build pkg-config libgtk-3-dev \
|
||||
liblzma-dev libstdc++-12-dev
|
||||
|
||||
RUN echo "Flutter (Android)"
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libc6:amd64 libstdc++6 lib32z1 libbz2-1.0
|
||||
|
||||
USER user
|
||||
owner: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | env
|
||||
ansible.builtin.copy:
|
||||
dest: /usr/local/etc/open-terminal/.env
|
||||
content: |
|
||||
COMPOSE_BAKE=true
|
||||
owner: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Run
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/sv/open-terminal/run
|
||||
content: |
|
||||
#!/bin/sh
|
||||
exec 2>&1
|
||||
image=ghcr.io/open-webui/open-terminal:latest
|
||||
packages=""
|
||||
|
||||
# Wait for Docker to start up.
|
||||
while [ ! -S /var/run/docker.sock ]; do sleep 1; done
|
||||
|
||||
# Ensure the old container is gone.
|
||||
# Ensure the old container is stopped.
|
||||
echo "RUN: Stopping..."
|
||||
docker stop open-terminal &&
|
||||
docker compose -f /usr/local/etc/open-terminal/docker-compose.yml down &&
|
||||
echo "RUN: Container stopped" ||
|
||||
echo "RUN: Container already stopped."
|
||||
echo "RUN: Deleting..."
|
||||
docker rm -f open-terminal &&
|
||||
echo "RUN: Container deleted" ||
|
||||
echo "RUN: Container already deleted."
|
||||
|
||||
# Check for any new updates in background.
|
||||
echo "RUN: Updating..."
|
||||
docker pull $image &
|
||||
sleep 60 &&
|
||||
docker compose -f /usr/local/etc/open-terminal/docker-compose.yml \
|
||||
build --pull &
|
||||
|
||||
GOT_EM=false
|
||||
if curl -sf --max-time 5 -o /dev/null https://hyperling.com; then
|
||||
# Internet is available, pull extra packages.
|
||||
GOT_EM=true
|
||||
|
||||
# Android, sans default-jdk
|
||||
packages="$packages \
|
||||
libc6:amd64 libncurses-dev libstdc++6 lib32z1 libbz2-1.0 \
|
||||
android-udev-rules \
|
||||
"
|
||||
|
||||
# Flutter (Main)
|
||||
packages="$packages \
|
||||
curl git unzip xz-utils zip libglu1-mesa libglu1-mesa \
|
||||
"
|
||||
|
||||
# Flutter (Linux)
|
||||
packages="$packages \
|
||||
clang cmake git ninja-build pkg-config libgtk-3-dev \
|
||||
liblzma-dev libstdc++-12-dev \
|
||||
"
|
||||
|
||||
# Flutter (Android)
|
||||
packages="$packages \
|
||||
libc6:amd64 libstdc++6 lib32z1 libbz2-1.0 \
|
||||
"
|
||||
fi
|
||||
export GOT_EM=true
|
||||
|
||||
# Start the open-terminal program.
|
||||
# https://github.com/open-webui/open-terminal#configuration
|
||||
set -e
|
||||
exec docker run \
|
||||
--name open-terminal \
|
||||
--network=host \
|
||||
-v {{ user_user.home }}/AI-Sandbox:/home/user \
|
||||
-v {{ user_user.home }}/Code:{{ user_user.home }}/Code \
|
||||
-v {{ user_user.home }}/SDKs:{{ user_user.home }}/SDKs \
|
||||
-v {{ jdk_jvm }}:{{ jdk_jvm }}:ro \
|
||||
-v {{ jdk_etc }}:{{ jdk_etc }}:ro \
|
||||
-v {{ jdk_etc17 }}:{{ jdk_etc17 }}:ro \
|
||||
-v {{ jdk_etc21 }}:{{ jdk_etc21 }}:ro \
|
||||
-v {{ jdk_etc25 }}:{{ jdk_etc25 }}:ro \
|
||||
-v {{ user_user.home }}/.gradle:{{ user_user.home }}/.gradle \
|
||||
-v {{ user_user.home }}/.pub-cache:{{ user_user.home }}/.pub-cache \
|
||||
-e OPEN_TERMINAL_FILE_BROWSER_ROOT="/home/user" \
|
||||
-e OPEN_TERMINAL_API_KEY="{{ open_terminal_key }}" \
|
||||
-e OPEN_TERMINAL_PACKAGES="$packages" \
|
||||
-e GOT_EM="$GOT_EM" \
|
||||
$image run --port {{ open_terminal_port }}
|
||||
|
||||
# -p {{ open_terminal_port }}:8000
|
||||
exec docker compose -f /usr/local/etc/open-terminal/docker-compose.yml up
|
||||
owner: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Finish
|
||||
@@ -729,15 +780,10 @@
|
||||
{{ runit_finish_sleep }}
|
||||
|
||||
echo "FINISH: Stopping..."
|
||||
docker stop open-terminal &&
|
||||
docker compose -f /usr/local/etc/open-terminal/docker-compose.yml down &&
|
||||
echo "FINISH: Container stopped" ||
|
||||
echo "FINISH: Container already stopped."
|
||||
|
||||
echo "FINISH: Deleting..."
|
||||
docker rm -f open-terminal &&
|
||||
echo "FINISH: Container deleted" ||
|
||||
echo "FINISH: Container already deleted."
|
||||
|
||||
echo "FINISH: Done!"
|
||||
mode: "0755"
|
||||
|
||||
|
||||
Reference in new issue
Block a user