Hi, i want to add container with proxy AI to OpenRouter.
Link to OpenRouter AI: https://openrouter.ai/
Repo with docker compose: GitHub - miikkaylisiurunen/raycast-ai-openrouter-proxy: Integrate any OpenAI-compatible API with Raycast AI
Repo raycast-proxy-arm64.tar file generated using Docker Desktop on Apple M4
{
"architecture": "arm64",
"config": {
"ArgsEscaped": true,
"Cmd": [
"npm",
"start"
],
"Entrypoint": [
"docker-entrypoint.sh"
],
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=22.19.0",
"YARN_VERSION=1.22.22",
"NODE_ENV=production"
],
"WorkingDir": "/app"
},
"created": "2025-09-23T11:35:45.407127838Z",
"history": [
{
"comment": "debuerreotype 0.16",
"created": "2025-08-28T22:35:08Z",
"created_by": "# debian.sh --arch 'arm64' out/ 'bookworm' '@1757289600'"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "ENV NODE_VERSION=22.19.0",
"empty_layer": true
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch=\"$(dpkg --print-architecture)\" && case \"${dpkgArch##*-}\" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) echo \"unsupported architecture\"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME=\"$(mktemp -d)\" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$key\" && gpg --batch --fingerprint \"$key\"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys \"$key\" && gpg --batch --fingerprint \"$key\"; } ; done && curl -fsSLO --compressed \"https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz\" && curl -fsSLO --compressed \"https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc\" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf \"$GNUPGHOME\" && grep \" node-v$NODE_VERSION-linux-$ARCH.tar.xz\\$\" SHASUMS256.txt | sha256sum -c - && tar -xJf \"node-v$NODE_VERSION-linux-$ARCH.tar.xz\" -C /usr/local --strip-components=1 --no-same-owner && rm \"node-v$NODE_VERSION-linux-$ARCH.tar.xz\" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name \"$OPENSSL_ARCH\" -exec rm -rf {} \\; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, \"/usr/local/\") == 1) { next }; gsub(\"^/(usr/)?\", \"\", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version && rm -rf /tmp/* # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "ENV YARN_VERSION=1.22.22",
"empty_layer": true
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "RUN /bin/sh -c set -ex && savedAptMark=\"$(apt-mark showmanual)\" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME=\"$(mktemp -d)\" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$key\" && gpg --batch --fingerprint \"$key\"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys \"$key\" && gpg --batch --fingerprint \"$key\"; } ; done && curl -fsSLO --compressed \"https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz\" && curl -fsSLO --compressed \"https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc\" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf \"$GNUPGHOME\" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z \"$savedAptMark\" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, \"/usr/local/\") == 1) { next }; gsub(\"^/(usr/)?\", \"\", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "COPY docker-entrypoint.sh /usr/local/bin/ # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "ENTRYPOINT [\"docker-entrypoint.sh\"]",
"empty_layer": true
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-08-28T22:35:08Z",
"created_by": "CMD [\"node\"]",
"empty_layer": true
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-09-23T11:35:33.88960643Z",
"created_by": "WORKDIR /app"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-09-23T11:35:33.940684055Z",
"created_by": "COPY package*.json ./ # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-09-23T11:35:38.91862896Z",
"created_by": "ENV NODE_ENV=production",
"empty_layer": true
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-09-23T11:35:38.91862896Z",
"created_by": "RUN /bin/sh -c npm ci --omit=dev # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-09-23T11:35:45.407127838Z",
"created_by": "COPY /app/dist ./dist # buildkit"
},
{
"comment": "buildkit.dockerfile.v0",
"created": "2025-09-23T11:35:45.407127838Z",
"created_by": "CMD [\"npm\" \"start\"]",
"empty_layer": true
}
],
"os": "linux",
"rootfs": {
"diff_ids": [
"sha256:07d4c428e5bd1876bbc1c2412d105f749f49898b64c684185c5123c73c8e9e7e",
"sha256:f8533164f19d6b4cb7e42281965426fb788c4e0299da2978555d466a3ed7b25a",
"sha256:b314ee512c6b6135a5e5ea504a7b4936e59243c2cc01619086623c509c3b6a98",
"sha256:8ffdddd30b5e2728c989dd7e2df0b54465dc93d9eda0ea90ca493b782d17833b",
"sha256:c3fef7151a48ea441ab7ba045df5a817a6cda16441d0632e7200822d0229fc10",
"sha256:c4837ad00da0f8c504b28492422644d22c5844448fab9b03c478a43fbe4c5405",
"sha256:4a6a89780f9be5345204ac0cc1ea97cec2312968b1bbc375be396a3385a864bc",
"sha256:43146a6e390c2c0c1361b00b13a01d807bd57c228f75565f77268343c8274ef3",
"sha256:eca53f2ae8179fbdc532140a7a8fcd9febc12f5261f78cad581484ea876f09f8"
],
"type": "layers"
}
}
I added env list raycast-env that contains
Key=BASE_URL and Value=https://openrouter.ai/api/v1
Key=API_KEY and Value=API_KEY_VALUE
I added mounts raycast-models:
Src=/usb1/models.json
Dst=/app/models.json
models.json:
[
{
"id": "openrouter/openai/gpt-4o-mini",
"name": "GPT‑4o Mini",
"description": "Fast, cost‑effective GPT‑4‑class model from OpenAI via OpenRouter",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/openai/gpt-4o",
"name": "GPT‑4o",
"description": "Latest GPT‑4 Omni model with vision and reasoning",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/google/gemini-1.5-flash",
"name": "Gemini 1.5 Flash",
"description": "Google’s fast multimodal model via OpenRouter",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/meta-llama/llama-3.1-70b-instruct",
"name": "LLaMA 3.1 70B Instruct",
"description": "Meta’s large‑scale instruction‑tuned model",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/anthropic/claude-3.5-sonnet",
"name": "Claude 3.5 Sonnet",
"description": "Anthropic’s balanced reasoning model",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/openai/gpt-5",
"name": "GPT‑5",
"description": "OpenAI’s latest flagship model with unified fast/deep reasoning",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/anthropic/claude-sonnet-4",
"name": "Claude Sonnet 4",
"description": "Anthropic’s newest Sonnet model with enhanced reasoning and coding",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/x-ai/grok-4-fast:free",
"name": "Grok 4 Fast (Free)",
"description": "xAI’s cost‑efficient reasoning model with 2M token context window; currently free on OpenRouter",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/google/gemini-2.5-pro",
"name": "Gemini 2.5 Pro",
"description": "Google’s state‑of‑the‑art reasoning model with 1M token context window",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/deepseek/deepseek-r1-0528:free",
"name": "DeepSeek R1 0528 (Free)",
"description": "May 2025 update to DeepSeek R1 with improved reasoning; fully open‑source",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/deepseek/deepseek-v3-0324:free",
"name": "DeepSeek V3 0324 (Free)",
"description": "Latest DeepSeek flagship chat model; mixture‑of‑experts architecture",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/deepseek/deepseek-r1:free",
"name": "DeepSeek R1 (Free)",
"description": "Open‑source reasoning model with performance on par with OpenAI o1",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/qwen/qwen3-coder:free",
"name": "Qwen3 Coder (Free)",
"description": "Mixture‑of‑Experts code generation model optimized for agentic coding tasks",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/tngtech/deepseek-r1t2-chimera:free",
"name": "DeepSeek R1T2 Chimera (Free)",
"description": "Second‑generation Chimera model with tri‑parent design for strong reasoning at lower latency",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
},
{
"id": "openrouter/z-ai/glm-4.5-air:free",
"name": "GLM 4.5 Air (Free)",
"description": "Lightweight variant of GLM‑4.5 for agent‑centric applications; supports hybrid inference modes",
"apiBaseUrl": "https://openrouter.ai/api/v1",
"apiKeyEnv": "API_KEY"
}
]
i add container using command:
add name=raycast dns=8.8.8.8 logging=yes file=raycast-proxy-arm64.tar envlists=raycast-env mounts=raycast-models check-certificate=no root-dir=/usb1/docker/containers/raycast/ interface=veth1 start-on-boot=yes workdir=/app
and after all receive error like below. Any idea whats wrong or how to run this?
*** start
*** started PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NODE_VERSION=22.19.0 YARN_VERSION=1.22.22 NODE_ENV=production API_KEY=api_key_is_here BASE_URL=https://openrouter.ai/api/v1 docker-entrypoint.sh npm start
execvpe: No such file or directory
container exec error
*** error: exited with status 255