- runtime-image-validation.md 문서 개선 - compose .env.example 및 README 업데이트 - docker-compose.yml 설정 개선 - G07 관련 하위 파일 정리
94 lines
6 KiB
Markdown
94 lines
6 KiB
Markdown
# Nexo Runtime Image Validation
|
|
|
|
This document records the registry, tag, architecture, and verification digests for nexo-owned runtime images.
|
|
|
|
## Published Images Summary
|
|
|
|
| Service | Target Architecture | Immutable Tag | Latest Tag | Digest (Immutable Tag) | Digest (Latest) |
|
|
|---|---|---|---|---|---|
|
|
| **Core (Mattermost)** | `linux/arm64` | `v11.4.2-arm64` | `latest` | `sha256:a811233f0625dd72a43c4b2315010ad67355fccc34be3e29d44e7aaab202b3ee` | `sha256:a811233f0625dd72a43c4b2315010ad67355fccc34be3e29d44e7aaab202b3ee` |
|
|
| **Push-Proxy** | `linux/arm64` | `v11.4.2-arm64` | `latest` | `sha256:73d104148e66bb24e901bd1787624cf9b46e41268955e20bdfe4c6fc70f10b0b` | `sha256:73d104148e66bb24e901bd1787624cf9b46e41268955e20bdfe4c6fc70f10b0b` |
|
|
|
|
## Verification Evidence
|
|
|
|
### Registry API Manifest Headers
|
|
This section displays registry manifest verification logs, ensuring the matching `Docker-Content-Digest` is resolved.
|
|
|
|
```sh
|
|
# Fetch Core (Mattermost) manifests from registry
|
|
$ curl -fsSI -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' https://toki-labs.com:5050/v2/nexo/mattermost/manifests/latest
|
|
HTTP/1.1 200 OK
|
|
Server: nginx/1.29.3
|
|
Content-Type: application/vnd.docker.distribution.manifest.v2+json
|
|
Content-Length: 6766
|
|
Docker-Content-Digest: sha256:a811233f0625dd72a43c4b2315010ad67355fccc34be3e29d44e7aaab202b3ee
|
|
Etag: "sha256:a811233f0625dd72a43c4b2315010ad67355fccc34be3e29d44e7aaab202b3ee"
|
|
|
|
# Fetch Push-Proxy manifests from registry
|
|
$ curl -fsSI -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' https://toki-labs.com:5050/v2/nexo/push-proxy/manifests/latest
|
|
HTTP/1.1 200 OK
|
|
Server: nginx/1.29.3
|
|
Content-Type: application/vnd.docker.distribution.manifest.v2+json
|
|
Content-Length: 1577
|
|
Docker-Content-Digest: sha256:73d104148e66bb24e901bd1787624cf9b46e41268955e20bdfe4c6fc70f10b0b
|
|
Etag: "sha256:73d104148e66bb24e901bd1787624cf9b46e41268955e20bdfe4c6fc70f10b0b"
|
|
```
|
|
|
|
### Remote Host Image Inspect (Architecture Proof)
|
|
This section lists concrete inspection output executed directly on the remote Mac build host (`toki@toki-labs.com`).
|
|
|
|
```sh
|
|
$ ssh toki@toki-labs.com '/usr/local/bin/docker image inspect toki-labs.com:5050/nexo/mattermost:latest --format "{{.Os}}/{{.Architecture}} {{range .RepoDigests}}{{.}} {{end}}" && /usr/local/bin/docker image inspect toki-labs.com:5050/nexo/mattermost:v11.4.2-arm64 --format "{{.Os}}/{{.Architecture}} {{range .RepoDigests}}{{.}} {{end}}" && /usr/local/bin/docker image inspect toki-labs.com:5050/nexo/push-proxy:latest --format "{{.Os}}/{{.Architecture}} {{range .RepoDigests}}{{.}} {{end}}" && /usr/local/bin/docker image inspect toki-labs.com:5050/nexo/push-proxy:v11.4.2-arm64 --format "{{.Os}}/{{.Architecture}} {{range .RepoDigests}}{{.}} {{end}}"'
|
|
|
|
linux/arm64 toki-labs.com:5050/nexo/mattermost@sha256:a811233f0625dd72a43c4b2315010ad67355fccc34be3e29d44e7aaab202b3ee
|
|
linux/arm64 toki-labs.com:5050/nexo/mattermost@sha256:a811233f0625dd72a43c4b2315010ad67355fccc34be3e29d44e7aaab202b3ee
|
|
linux/arm64 toki-labs.com:5050/nexo/push-proxy@sha256:73d104148e66bb24e901bd1787624cf9b46e41268955e20bdfe4c6fc70f10b0b
|
|
linux/arm64 toki-labs.com:5050/nexo/push-proxy@sha256:73d104148e66bb24e901bd1787624cf9b46e41268955e20bdfe4c6fc70f10b0b
|
|
```
|
|
|
|
### Remote Compose Smoke Evidence
|
|
This section contains the validation log of copying the local compose files to the remote development host, running a config check, pulling nexo-owned images, and performing service smoke tests.
|
|
|
|
```sh
|
|
# 1. Compare local and remote file hashes (Parity Verification)
|
|
$ sha256sum docker-compose.yml .env.example
|
|
c46bc291e42b1e87ca5e6b49d118bb59c67b0b2b1412a2751c6089e49d492563 docker-compose.yml
|
|
fa56a8dc7a8dddc7737d42ec048e4f29836252e277e2d270f0ad0e7cbb38d430 .env.example
|
|
|
|
$ ssh toki@toki-labs.com 'cd ~/docker/services/nexo/compose && sha256sum docker-compose.yml .env.example'
|
|
c46bc291e42b1e87ca5e6b49d118bb59c67b0b2b1412a2751c6089e49d492563 docker-compose.yml
|
|
fa56a8dc7a8dddc7737d42ec048e4f29836252e277e2d270f0ad0e7cbb38d430 .env.example
|
|
|
|
# 2. Check remote Docker Compose configuration
|
|
$ ssh toki@toki-labs.com 'cd ~/docker/services/nexo/compose && /usr/local/bin/docker compose --env-file .env.example config >/tmp/nexo-compose-config.yml && /usr/bin/grep -E "toki-labs.com:5050/nexo/(mattermost|push-proxy):latest|platform: linux/arm64" /tmp/nexo-compose-config.yml'
|
|
image: toki-labs.com:5050/nexo/mattermost:latest
|
|
platform: linux/arm64
|
|
image: toki-labs.com:5050/nexo/push-proxy:latest
|
|
|
|
# 3. Pull and start services on the remote server
|
|
$ ssh toki@toki-labs.com 'export PATH=$PATH:/Applications/Docker.app/Contents/Resources/bin && cd ~/docker/services/nexo/compose && /usr/local/bin/docker compose pull && /usr/local/bin/docker compose up -d'
|
|
Container nexo-core-db Running
|
|
Container nexo-core-push-proxy Recreated
|
|
Container nexo-core Recreated
|
|
Container nexo-core-push-proxy Started
|
|
Container nexo-core-db Healthy
|
|
Container nexo-core Started
|
|
|
|
# 4. Remote Runtime Smoke Checks
|
|
$ ssh toki@toki-labs.com 'cd ~/docker/services/nexo/compose && curl -fsS "http://localhost:18065/api/v4/system/ping" && /usr/local/bin/docker compose exec -T db pg_isready -U mmuser -d mattermost && curl -fsSI "http://localhost:18065" && /usr/local/bin/docker compose ps push-proxy'
|
|
{"ActiveSearchBackend":"database","AndroidLatestVersion":"","AndroidMinVersion":"","IosLatestVersion":"","IosMinVersion":"","status":"OK"}
|
|
/var/run/postgresql:5432 - accepting connections
|
|
HTTP/1.1 200 OK
|
|
Cache-Control: no-cache, max-age=31556926, public
|
|
Content-Security-Policy: frame-ancestors 'self' ; script-src 'self'
|
|
Content-Type: text/html
|
|
Permissions-Policy:
|
|
Referrer-Policy: no-referrer
|
|
X-Content-Type-Options: nosniff
|
|
X-Frame-Options: SAMEORIGIN
|
|
X-Request-Id: 1z4r5bc67b89fd8x816dexgsse
|
|
X-Version-Id: 11.4.2.22416167438.bfd0f10f265c336e8b5a043b0dccdcd64438e08f73bcc5627b72c815906e1130.false
|
|
Date: Thu, 28 May 2026 01:41:27 GMT
|
|
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
|
|
nexo-core-push-proxy toki-labs.com:5050/nexo/push-proxy:latest "/usr/local/b..." push-proxy 3 seconds ago Up 2 seconds 0.0.0.0:18066->8066/tcp
|
|
```
|