-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 05eb736
Showing
17 changed files
with
2,619 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"name": "Firebase Cloud Functions Development", | ||
"dockerFile": "../Dockerfile", | ||
|
||
// Specifies a list of ports that should be published. | ||
// 9005: Firebase CLIのログインコールバック | ||
// 5000: Firebase CLIのエミュレータ | ||
"appPort": [9005, 5000], | ||
|
||
// Comment out the next line to run as root instead. Linux users, update | ||
// Dockerfile with your user's UID/GID if not 1000. | ||
"runArgs": [ "-u", "node" ], | ||
|
||
// Use 'settings' to set *default* container specific settings.json values on container create. | ||
// You can edit these settings after create using File > Preferences > Settings > Remote. | ||
"settings": { | ||
"terminal.integrated.shell.linux": "/bin/bash" | ||
}, | ||
|
||
// Specifies a command that should be run after the container has been created. | ||
"postCreateCommand": "", | ||
|
||
"extensions": [ | ||
"dbaeumer.vscode-eslint" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
{ | ||
"root": true, | ||
"env": { | ||
"node": true, | ||
"es6": true | ||
}, | ||
"rules": { | ||
"no-console": 0, | ||
"eqeqeq":"warn", | ||
"no-cond-assign": 0, | ||
"no-unused-vars": 1, | ||
"no-extra-semi": "warn", | ||
"semi": "warn" | ||
}, | ||
"extends": "eslint:recommended", | ||
"parserOptions": { | ||
"ecmaFeatures": { | ||
"experimentalObjectRestSpread": true | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"projects": { | ||
"default": "<project-name>" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
* text=auto eol=lf | ||
*.{cmd,[cC][mM][dD]} text eol=crlf | ||
*.{bat,[bB][aA][tT]} text eol=crlf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
## Ignore Visual Studio temporary files, build results, and | ||
## files generated by popular Visual Studio add-ons. | ||
## | ||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | ||
|
||
# vscode | ||
.vscode/settings.json | ||
|
||
# User-specific files | ||
*.suo | ||
*.user | ||
*.userosscache | ||
*.sln.docstates | ||
|
||
# User-specific files (MonoDevelop/Xamarin Studio) | ||
*.userprefs | ||
|
||
# Build results | ||
[Dd]ebug/ | ||
[Dd]ebugPublic/ | ||
[Rr]elease/ | ||
[Rr]eleases/ | ||
x64/ | ||
x86/ | ||
bld/ | ||
[Bb]in/ | ||
[Oo]bj/ | ||
[Ll]og/ | ||
|
||
# Visual Studio 2015/2017 cache/options directory | ||
.vs/ | ||
# Uncomment if you have tasks that create the project's static files in wwwroot | ||
#wwwroot/ | ||
|
||
# Visual Studio 2017 auto generated files | ||
Generated\ Files/ | ||
|
||
# MSTest test Results | ||
[Tt]est[Rr]esult*/ | ||
[Bb]uild[Ll]og.* | ||
|
||
# NUNIT | ||
*.VisualState.xml | ||
TestResult.xml | ||
|
||
# Build Results of an ATL Project | ||
[Dd]ebugPS/ | ||
[Rr]eleasePS/ | ||
dlldata.c | ||
|
||
# Benchmark Results | ||
BenchmarkDotNet.Artifacts/ | ||
|
||
# .NET Core | ||
project.lock.json | ||
project.fragment.lock.json | ||
artifacts/ | ||
**/Properties/launchSettings.json | ||
|
||
# StyleCop | ||
StyleCopReport.xml | ||
|
||
# Files built by Visual Studio | ||
*_i.c | ||
*_p.c | ||
*_i.h | ||
*.ilk | ||
*.meta | ||
*.obj | ||
*.iobj | ||
*.pch | ||
*.pdb | ||
*.ipdb | ||
*.pgc | ||
*.pgd | ||
*.rsp | ||
*.sbr | ||
*.tlb | ||
*.tli | ||
*.tlh | ||
*.tmp | ||
*.tmp_proj | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env | ||
|
||
# next.js build output | ||
.next |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
// Use IntelliSense to learn about possible attributes. | ||
// Hover to view descriptions of existing attributes. | ||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||
"version": "0.2.0", | ||
"configurations": [ | ||
{ | ||
"name": "Inspect Function", | ||
"type": "node", | ||
"protocol": "inspector", | ||
"request": "attach", | ||
"port": 5000 | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
FROM node:10 | ||
|
||
# Avoid warnings by switching to noninteractive | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# Firebase CLI Version | ||
ARG FIREBASE_TOOLS_VERSION=8.4.1 | ||
|
||
# The node image comes with a base non-root 'node' user which this Dockerfile | ||
# gives sudo access. However, for Linux, this user's GID/UID must match your local | ||
# user UID/GID to avoid permission issues with bind mounts. Update USER_UID / USER_GID | ||
# if yours is not 1000. See https://aka.ms/vscode-remote/containers/non-root-user. | ||
ARG USER_UID=1000 | ||
ARG USER_GID=$USER_UID | ||
|
||
# Configure apt and install packages | ||
RUN apt-get update \ | ||
&& apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \ | ||
# | ||
# Verify git and needed tools are installed | ||
&& apt-get install -y git procps \ | ||
# | ||
# Remove outdated yarn from /opt and install via package | ||
# so it can be easily updated via apt-get upgrade yarn | ||
&& rm -rf /opt/yarn-* \ | ||
&& rm -f /usr/local/bin/yarn \ | ||
&& rm -f /usr/local/bin/yarnpkg \ | ||
&& apt-get install -y curl apt-transport-https lsb-release \ | ||
&& curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ | ||
&& echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ | ||
&& apt-get update \ | ||
&& apt-get -y install --no-install-recommends yarn \ | ||
# | ||
# Install eslint globally | ||
&& npm install -g eslint \ | ||
# | ||
# Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. | ||
&& if [ "$USER_GID" != "1000" ]; then groupmod node --gid $USER_GID; fi \ | ||
&& if [ "$USER_UID" != "1000" ]; then usermod --uid $USER_UID node; fi \ | ||
# [Optional] Add sudo support for non-root users | ||
&& apt-get install -y sudo \ | ||
&& echo node ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/node \ | ||
&& chmod 0440 /etc/sudoers.d/node \ | ||
# | ||
# Clean up | ||
&& apt-get autoremove -y \ | ||
&& apt-get clean -y \ | ||
&& rm -rf /var/lib/apt/lists/* \ | ||
|
||
# Firebase Tools | ||
&& yarn global add firebase-tools@${FIREBASE_TOOLS_VERSION} | ||
|
||
# Switch back to dialog for any ad-hoc use of apt-get | ||
ENV DEBIAN_FRONTEND= | ||
|
||
# yarn global | ||
ENV HOME=/home/node | ||
ENV PATH=$PATH:$HOME/.config/yarn/global/node_modules/.bin | ||
|
||
# settings for runtime emulator | ||
ENV HOST 0.0.0.0 | ||
EXPOSE 5000 | ||
|
||
# settings for Firebase login | ||
EXPOSE 9005 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# Firebase Cloud Functions Development | ||
Cloud Functionsの開発環境 | ||
|
||
## Requirements | ||
|
||
| Tools | Version | | ||
| ------------ | ------- | | ||
| Firebase CLI | 8.4.1 | | ||
| Node.js | 10 | | ||
| Typescript | 3.9.5 | | ||
|
||
|
||
## 開発環境構築 | ||
|
||
* ローカル環境の保護、依存性管理のためにDockerの利用 | ||
* コンテナ内での開発効率化のために、[VS Code Remote Development](https://code.visualstudio.com/docs/remote/containers) を利用 | ||
|
||
### Dockerのセットアップ | ||
1. [Docker Desktop for Windows/Mac](https://www.docker.com/products/docker-desktop)をインストール | ||
2. Dockerタスクバー項目を右クリックして、`Preferences > Shared Drives / File Sharing` からコンテナで開くソースコードの場所を追加する | ||
|
||
### VSCodeのセットアップ | ||
1. [Visual Studio Code](https://code.visualstudio.com/)をインストール | ||
2. [Remote Developmentプラグイン](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)をVSCodeにインストール | ||
3. VSCodeを起動し、コマンドパレット(⇧⌘P)から`Remote-Containers: Open Folder in Container`を選択し、cloneしたディレクトリを開く | ||
- `docker build`が実行されるので少し時間がかかります | ||
4. Firebase CLIにログイン | ||
- VSCodeでターミナルを起動すればコンテナ内のシェルが起動する | ||
- `$ firebase login` | ||
|
||
## [WIP]デバッグ | ||
|
||
## [WIP]Deploy | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
"functions": { | ||
"predeploy": [ | ||
"yarn --cwd functions run lint", | ||
"yarn --cwd functions run build" | ||
] | ||
}, | ||
"emulators": { | ||
"functions": { | ||
"port": 5000, | ||
"host": "0.0.0.0" | ||
} | ||
} | ||
} |
Oops, something went wrong.