Skip to content

Minio関連 #30

Description

@ques0942

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で取り敢えず設定すればいい気はする。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions