Dockerコンテナ内のファイルをローカルにコピー
RailsアプリケーションをローカルからDockerにアップロードすると、
Axlsx
でExcelファイルが作成され、結果ファイルはDockerコンテナで生成されます.結果ファイルを記録すると、結果ファイルをローカルにコピーする方法がわかります.
に道を教える
$ docker cp ${DOCKER_CONTAINER_NAME}:${DOCKER_FILE_PATH} ${LOCAL_PATH}
ドッキングコンテナの内部ファイルをローカルに取り出すことができます.特定のファイルだけでなく、ディレクトリも指定されている場合は、ディレクトリ全体がコピーされます.例
# temp.rake
namespace :temp do
desc "회원목록 xlsx 파일 추출 예시"
task generate_member_list_to_xlsx: :environment do
members = Member.all
Axlsx::Package.new do |p|
p.workbook.add_worksheet(:name => "회원목록시트") do |sheet|
# 제목행
sheet.add_row ["ID", "이름", "나이", "회원가입일"]
members.each do |m|
# 한줄씩 회원정보 기록
sheet.add_row [m.id, m.name, m.age, m.created_at]
end
end
# 파일생성
p.serialize("member_list.xlsx")
end
end
end
Dockerコンテナに入り、スクリプトを実行します.ドッキングステーションコンテナ名がapi-server_1
の場合$ docker exec -it api-server_1 bash
# 접속된 Docker 컨테이너 내부 쉘
root@b09cd8c83b7c:/app$ bundle exec rake temp:generate_member_list_to_xlsx
上記のコマンドを実行すると、コンテナ内部のルートディレクトリに「member list.xlsx」ファイルが作成されます.exit
命令でコンテナ内部から離れると$ docker cp api-server_1:/app/member_list.xlsx .
コマンドを実行すると、コンテナ内の/app/member_list.xlsx
ファイルの現在のディレクトリ(.)にコピーします.Reference
この問題について(Dockerコンテナ内のファイルをローカルにコピー), 我々は、より多くの情報をここで見つけました https://velog.io/@glowforever/Docker-컨테이너-내-파일을-로컬로-복사テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol