CircleCI上でだけファイルアップロードが失敗する。
import boto3
ENDPOINT_URL = "http://localhost:8080"
BUCKET_NAME = "bucket"
APP_ROOT = "http://localhost:8000/"
AWS_ID = "hogehoge"
AWS_KEY = "fugafuga"
s3 = boto3.client(
"s3",
endpoint_url=ENDPOINT_URL,
aws_access_key_id=AWS_ID,
aws_secret_access_key=AWS_KEY,
)
res = s3.list_objects_v2(Bucket=BUCKET_NAME)
print(res)
ローカルに立てたminioだと普通に動くが、CircleCIで以下のエラーが出る。
botocore.exceptions.ClientError: An error occurred (InvalidAccessKeyId) when calling the ListObjectsV2 operation: The AWS Access Key Id you provided does not exist in our records.
初期化スクリプトは同じものを使っていて、CircleCI環境にsshポートフォワードしてスクリプトをローカルから起動するとエラーは出ない。
region_nameを指定すると解消した。デフォルト値が環境によって異なる?
dockerでホスト側のディレクトリをvolumeとしてマウントしたディレクトリでPermission Denied
volumeの末尾にz/Zを付ける方法では駄目だった。
refs: http://docs.docker.jp/engine/userguide/dockervolumes.html#id6
そういえばファイルのマウントできない制約あったけどこれのせい?
refs: https://circleci.com/docs/2.0/building-docker-images/#mounting-folders 443
-> これのせいだった。ホストのディレクトリをvolumeから外したら解消した。
コンテナ内でファイルの書き出しに失敗する(ディレクトリの作成もできない)
volumeで特に設定していないディレクトリを新規に作成しようとしたが失敗した。
/out みたいな名前のディレクトリを作ろうとしたが失敗した。
そもそもDockerfileでもvolumeでも指定していないので単純にrootじゃないとできないだけな気がする。
volumeで取り敢えず設定すればいい気はする。
CircleCI上でだけファイルアップロードが失敗する。
ローカルに立てたminioだと普通に動くが、CircleCIで以下のエラーが出る。
初期化スクリプトは同じものを使っていて、CircleCI環境にsshポートフォワードしてスクリプトをローカルから起動するとエラーは出ない。
region_nameを指定すると解消した。デフォルト値が環境によって異なる?
dockerでホスト側のディレクトリをvolumeとしてマウントしたディレクトリでPermission Denied
volumeの末尾にz/Zを付ける方法では駄目だった。
refs: http://docs.docker.jp/engine/userguide/dockervolumes.html#id6
そういえばファイルのマウントできない制約あったけどこれのせい?
refs: https://circleci.com/docs/2.0/building-docker-images/#mounting-folders 443
-> これのせいだった。ホストのディレクトリをvolumeから外したら解消した。
コンテナ内でファイルの書き出しに失敗する(ディレクトリの作成もできない)
volumeで特に設定していないディレクトリを新規に作成しようとしたが失敗した。
/outみたいな名前のディレクトリを作ろうとしたが失敗した。そもそもDockerfileでもvolumeでも指定していないので単純にrootじゃないとできないだけな気がする。
volumeで取り敢えず設定すればいい気はする。