Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b1dec8b735 | |||
| 06523d8c1e |
@@ -45,11 +45,26 @@ if [[ -z "$LCPP_TAG" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CONTAINER_TAG="ghcr.io/mostlygeek/llama-swap:v${LS_VER}-${ARCH}-${LCPP_TAG}"
|
for CONTAINER_TYPE in non-root root; do
|
||||||
CONTAINER_LATEST="ghcr.io/mostlygeek/llama-swap:${ARCH}"
|
CONTAINER_TAG="ghcr.io/mostlygeek/llama-swap:v${LS_VER}-${ARCH}-${LCPP_TAG}"
|
||||||
echo "Building ${CONTAINER_TAG} $LS_VER"
|
CONTAINER_LATEST="ghcr.io/mostlygeek/llama-swap:${ARCH}"
|
||||||
docker build -f llama-swap.Containerfile --build-arg BASE_TAG=${BASE_TAG} --build-arg LS_VER=${LS_VER} -t ${CONTAINER_TAG} -t ${CONTAINER_LATEST} .
|
USER_UID=0
|
||||||
if [ "$PUSH_IMAGES" == "true" ]; then
|
USER_GID=0
|
||||||
docker push ${CONTAINER_TAG}
|
USER_HOME=/root
|
||||||
docker push ${CONTAINER_LATEST}
|
|
||||||
fi
|
if [ "$CONTAINER_TYPE" == "non-root" ]; then
|
||||||
|
CONTAINER_TAG="${CONTAINER_TAG}-non-root"
|
||||||
|
CONTAINER_LATEST="${CONTAINER_LATEST}-non-root"
|
||||||
|
USER_UID=10001
|
||||||
|
USER_GID=10001
|
||||||
|
USER_HOME=/app
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Building $CONTAINER_TYPE $CONTAINER_TAG $LS_VER"
|
||||||
|
docker build -f llama-swap.Containerfile --build-arg BASE_TAG=${BASE_TAG} --build-arg LS_VER=${LS_VER} --build-arg UID=${USER_UID} \
|
||||||
|
--build-arg GID=${USER_GID} --build-arg USER_HOME=${USER_HOME} -t ${CONTAINER_TAG} -t ${CONTAINER_LATEST} .
|
||||||
|
if [ "$PUSH_IMAGES" == "true" ]; then
|
||||||
|
docker push ${CONTAINER_TAG}
|
||||||
|
docker push ${CONTAINER_LATEST}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|||||||
@@ -256,6 +256,7 @@ func (p *Process) start() error {
|
|||||||
p.cmd.Env = append(p.cmd.Environ(), p.config.Env...)
|
p.cmd.Env = append(p.cmd.Environ(), p.config.Env...)
|
||||||
p.cmd.Cancel = p.cmdStopUpstreamProcess
|
p.cmd.Cancel = p.cmdStopUpstreamProcess
|
||||||
p.cmd.WaitDelay = p.gracefulStopTimeout
|
p.cmd.WaitDelay = p.gracefulStopTimeout
|
||||||
|
setProcAttributes(p.cmd)
|
||||||
|
|
||||||
p.cmdMutex.Lock()
|
p.cmdMutex.Lock()
|
||||||
p.cancelUpstream = ctxCancelUpstream
|
p.cancelUpstream = ctxCancelUpstream
|
||||||
@@ -625,6 +626,7 @@ func (p *Process) cmdStopUpstreamProcess() error {
|
|||||||
stopCmd := exec.Command(stopArgs[0], stopArgs[1:]...)
|
stopCmd := exec.Command(stopArgs[0], stopArgs[1:]...)
|
||||||
stopCmd.Stdout = p.processLogger
|
stopCmd.Stdout = p.processLogger
|
||||||
stopCmd.Stderr = p.processLogger
|
stopCmd.Stderr = p.processLogger
|
||||||
|
setProcAttributes(stopCmd)
|
||||||
stopCmd.Env = p.cmd.Env
|
stopCmd.Env = p.cmd.Env
|
||||||
|
|
||||||
if err := stopCmd.Run(); err != nil {
|
if err := stopCmd.Run(); err != nil {
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
//go:build !windows
|
||||||
|
|
||||||
|
package proxy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
// setProcAttributes sets platform-specific process attributes
|
||||||
|
func setProcAttributes(cmd *exec.Cmd) {
|
||||||
|
// No-op on Unix systems
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
//go:build windows
|
||||||
|
|
||||||
|
package proxy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
// setProcAttributes sets platform-specific process attributes
|
||||||
|
func setProcAttributes(cmd *exec.Cmd) {
|
||||||
|
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||||
|
HideWindow: true,
|
||||||
|
CreationFlags: 0x08000000, // CREATE_NO_WINDOW
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user