Verdaccio+Docker+EC2 その2-(b) s3 plugin
今回仕事で任されたタスクをもう一度最初から作っていきます。
Project
同僚がFrontendチームで使うというVerdaccioを何の前知識もなくDockerizeして使えるようにしていく。元々同僚の頭の中では形があったようだが詳細は全く説明されず、最後あたりで説明された。。。
最終的に設定するもの
- docker-compose (Verdaccio, Verdaccio s3 plugin, https-portal)
- Bitbucket pipeline
- git hooks - post-receive
Usage
Verdaccioアクセスはhttps://<サイト>
A. Publish a package
1. チームの誰かがパッケージをパブリッシュする。
2. このパッケージはS3 bucketへ。
3. BitBucket Pipelineを通してプロダクションにデプロイ。
B. Add a new user
1. 新規ユーザーを追加>conf/htpasswdに追加される。
2. BitBucket Pipelineを通してプロダクションにデプロイ。
今回はその2bの設定
- Verdaccio (Dockerfile, config.yaml)+s3 plugin
- EC2 (docker, docker-compose, npm)
その2aと違ってサクッと出来ました。
Spec and Software
- Amazon Ubuntu Server 18.04
- Verdaccio
- Docker
Path
/home/ubuntu
└── verdaccio-s3
├── Dockerfile
├── conf
│ ├── config.yaml
│ └── htpasswd <- adduserで作られる
├── docker-compose.yaml
├── package.json <- publishで必要
├── plugins
└── storage
└── @mypackage <- publishで追加される
verdaccio/conf/config.yaml
storage: /verdaccio/storage
auth:
htpasswd:
file: /verdaccio/conf/htpasswd
store:
s3-storage:
bucket: verdaccio-s3
#keyPrefix: some-prefix # optional, has the effect of nesting all files in a subdirectory
region: <region> # optional, will use aws s3's default behavior if not specified
#endpoint: https://{service}.{region}.amazonaws.com # optional, will use aws s3's default behavior if not specified
#s3ForcePathStyle: false # optional, will use path style URLs for S3 objects
accessKeyId: <accessKeyId> # optional, aws accessKeyId for private S3 bucket
secretAccessKey: <secretAccessKey> # optional, aws secretAccessKey for private S3 bucket
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@mypackage/*': <- ポイント
access: $authenticated
publish: $authenticated
'@*/*':
access: $authenticated
publish: $authenticated
proxy: npmjs
'**':
proxy: npmjs
logs:
- {type: stdout, format: pretty, level: http}
verdaccio/package.json
適当に作る。
npm init
名前は上のポイントに合わせる
"name": "@mypackage/verdaccio",
References
- https://verdaccio.org/docs/en/docker
- https://verdaccio.org/docs/en/configuration
- https://github.com/remitly/verdaccio-s3-storage
Tips for EC2
1) その1を参照してください。
Error Messages
1) その1を参照してください。
Useful commands
docker-compose up --force-recreate
docker exec -it --user=root verdaccio /bin/sh
Testing
1. docker起動
docker-compose up
expected logging
verdaccio | warn --- config file - /verdaccio/conf/config.yaml
verdaccio | warn --- Plugin successfully loaded: verdaccio-s3-storage
verdaccio | warn --- Plugin successfully loaded: verdaccio-htpasswd
verdaccio | warn --- http address - http://0.0.0.0:4873/ - verdaccio/4.2.0
2. URLにアクセス
3. Add a user 'qqq'
npm adduser --registry http://<IP>:4873
expected logging
req: 'PUT /-/user/org.couchdb.user:qqq'
4. Login on URL as 'qqq'
expected logging
req: 'POST /-/verdaccio/login'
req: 'GET /-/verdaccio/packages'
5. Publish
npm publish --registry http://<IP>:4873
expected logging
req: 'PUT /@mypackage%2fverdaccio'
6. Refresh URL
expected logging
req: 'GET /-/verdaccio/packages'
7. Check S3
Author And Source
この問題について(Verdaccio+Docker+EC2 その2-(b) s3 plugin), 我々は、より多くの情報をここで見つけました https://qiita.com/apac/items/44269b84fe11b222dcf0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .