目的
takezoeさんの記事、「AWS上で動作するアプリケーションをいかにローカルで開発するか?」に触発されて、
今度は、擬似的なs3のDocker Imageを作成できるか試してみることにしました!
成果物
参考資料
- https://docs.travis-ci.com/user/docker/
- https://github.com/4front/s3-proxy/issues/1
- https://github.com/jamhall/s3rver
手順
1. GitHubでリポジトリを作成して、Dockerfileを用意する
FROM node
RUN npm install -g s3-proxy
RUN npm install -g s3rver
RUN mkdir -p /data
EXPOSE 4567
CMD ["s3rver", "-d", "/data", "-p", "4567", "-h", "0.0.0.0"]
で確認したのですが、s3-proxyではなく、実態としてはjamhall/s3rverの方が、S3のサービスのようなものを提供してくれるみたいです。
2. .travis.ymlを用意する
上記を参考にして、.travis.ymlを実装しました。
travis.yml
sudo: required
language: node_js
node_js:
- "4.1"
services:
- docker
before_install:
- docker build -t triplew/s3rver ./
script:
- docker login -e="$DOCKER_EMAIL" -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
- docker push triplew/s3rver
docker push
については前回と同様の手順でpushしました。
3. git pushをして、travis ciを走らせる
今回もさくっと行けました^^
イメージ自体が利用可能かどうかはこれから見てみようと思います^^;
利用方法
実行環境
- Client ローカルのMacOS
- Server どこかのAWSとかどこかのGCPとか
- curl利用
1. docker runでコンテナを起動
docker run -d -p 4567:4567 triplew/s3rver
2. curlでバケット作成
curl -XPUT localhost:4567/hoge
3. curlでファイルアップロード
curl -XPUT -T hello.txt localhost:4567/hoge/
4. curlでファイルダウンロード
curl -XGET localhost:4567/hoge/hello.txt
使えないこともなさそうな印象ですね!