- Dockerfile: openssh-client 换成 openssh-server - 新增 sshd-hardening.conf: 仅公钥认证,禁密码/转发 - 新增 authorized_keys: 授权公钥 - 构建期生成 host key,保证镜像内指纹稳定 - entrypoint.sh: exec opencode 前拉起 sshd,幂等且失败不阻断主服务 - compose: 发布 3333:22
86 lines
1.8 KiB
YAML
86 lines
1.8 KiB
YAML
services:
|
||
|
||
opencode:
|
||
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
args:
|
||
BUILDKIT_INLINE_CACHE: 1
|
||
|
||
image: opencode-dev:latest
|
||
|
||
container_name: opencode-dev
|
||
|
||
restart: unless-stopped
|
||
|
||
privileged: true
|
||
|
||
stdin_open: true
|
||
tty: true
|
||
networks:
|
||
- 1panel-network
|
||
|
||
working_dir: /workspace
|
||
|
||
ports:
|
||
- "3004:3004"
|
||
- "3005:3005"
|
||
# SSH(宿主机 3333 -> 容器 22)
|
||
- "3333:22"
|
||
|
||
volumes:
|
||
|
||
# 项目
|
||
- /home/wol/docker-data/jupyter/data/opencode:/workspace
|
||
|
||
# Maven
|
||
- /home/wol/docker-data/opencode/cache/m2:/root/.m2
|
||
|
||
# Gradle
|
||
- /home/wol/docker-data/opencode/cache/gradle:/root/.gradle
|
||
|
||
# Python
|
||
- /home/wol/docker-data/opencode/cache/pip:/root/.cache/pip
|
||
|
||
# Android SDK
|
||
- /home/wol/docker-data/opencode/cache/sdk:/opt/android-sdk
|
||
|
||
# Docker
|
||
- /var/run/docker.sock:/var/run/docker.sock
|
||
|
||
# opencode
|
||
- /home/wol/docker-data/opencode/config:/root/.config/opencode
|
||
- /home/wol/docker-data/opencode/data:/root/.local/share/opencode
|
||
|
||
# omo
|
||
- /home/wol/docker-data/opencode/omo:/root/.omo
|
||
|
||
environment:
|
||
|
||
TZ: Asia/Shanghai
|
||
|
||
LANG: C.UTF-8
|
||
LC_ALL: C.UTF-8
|
||
|
||
WORKSPACE: /workspace
|
||
|
||
ANDROID_HOME: /opt/android-sdk
|
||
ANDROID_SDK_ROOT: /opt/android-sdk
|
||
|
||
PYTHONUNBUFFERED: "1"
|
||
http_proxy: http://192.168.1.12:7897
|
||
https_proxy: http://192.168.1.12:7897
|
||
all_proxy: socks5://192.168.1.12:7897
|
||
no_proxy: localhost,127.0.0.1,192.168.1.12
|
||
|
||
# GitNexus embedding
|
||
GITNEXUS_EMBEDDING_URL: ${GITNEXUS_EMBEDDING_URL}
|
||
GITNEXUS_EMBEDDING_MODEL: ${GITNEXUS_EMBEDDING_MODEL}
|
||
GITNEXUS_EMBEDDING_DIMS: ${GITNEXUS_EMBEDDING_DIMS}
|
||
GITNEXUS_EMBEDDING_API_KEY: ${GITNEXUS_EMBEDDING_API_KEY}
|
||
|
||
|
||
networks:
|
||
1panel-network:
|
||
external: true |