Publicando uma api REST Go no Heroku.
Heroku é uma plataforma de nuvem como serviço que suporta várias linguagens de programação.
Configurando nossa API
기본 구성은 컨테이너 도커를 로드하지 않고 컨테이너를 사용하지 않도록 설정하는 것입니다. 바모스 라!
Na raiz do projeto cry um arquivo chamado Dockerfile. Arquivo vamos configurar um multistage build para deixar nossa imagem com somente os recursos necessários para rodar aplicação가 없습니다.
FROM golang:latest AS builder
ADD . /go/api
WORKDIR /go/api
RUN go install github.com/swaggo/swag/cmd/swag@latest
RUN rm -rf deploy
RUN mkdir deploy
RUN swag init -d adapter/http --parseDependency --parseInternal --parseDepth 2 -o adapter/http/docs
RUN go mod tidy
RUN CGO_ENABLED=0 go build -o goapp adapter/http/main.go
RUN mv goapp ./deploy/goapp
RUN mv adapter/http/docs ./deploy/docs
RUN mv config.json ./deploy/config.json
RUN mv database ./deploy/database
FROM scratch AS production
COPY --from=builder /go/api/deploy /api/
WORKDIR /api
ENTRYPOINT ./goapp
com o Dockerfile pronto vamos configurar nosso 배포 no github 작업 no arquivo
.github/workflows/deploy.yaml
.name: Deploy to heroku app
on:
create:
tags:
- v*
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Config file access
run: |
rm -rf config.json
touch config.json
json='{"database": {"url": "://$DB_USER:$DB_PASS@$DB_HOST:$DB_PORT/$DB_NAME"},"server": {"port": ""}}'
echo "$json" > config.json
sed -i -e 's/$DB_PORT/'${{ secrets.DB_PORT }}'/g' config.json
sed -i -e 's/$DB_USER/'${{ secrets.DB_USER }}'/g' config.json
sed -i -e 's/$DB_PASS/'${{ secrets.DB_PASS }}'/g' config.json
sed -i -e 's/$DB_NAME/'${{ secrets.DB_NAME }}'/g' config.json
sed -i -e 's/$DB_HOST/'${{ secrets.DB_HOST }}'/g' config.json
cat config.json
- uses: akhileshns/[email protected]
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "clean-go"
heroku_email: ${{secrets.HEROKU_MAIL}}
usedocker: true
Esse arquivo
deploy.yaml
precisa de algumas variaveis de ambiente para funcionar corretamente.secrets.HEROKU_MAIL: heroku에 이메일을 보내세요
secrets.HEROKU_API_KEY: Va nas configurações da sua conta
secrets.DB_PORT, secrets.DB_USER, secrets.DB_PASS, secrets.DB_NAME, secrets.DB_HOST: postgres의 애드온입니다.
Credencias do banco de dados e adicione nos secrets do github로 복사:
Crie uma release com uma tag com prefixo
v
:빨리! 액션을 실행하지 않고 heroku를 배포하지 마십시오:
Quando ele ficar verdinho. Verifique o endpoint do app no heroku que vai estar rodando lisinho! :디
수아베즈
바이 나 페! Acredito totalmente em você, independente do seu nível de conhecimento técnico, você vai criar a melhor api em GO.
Se você se deparar com problemas que não consegue resolver, sinta-se à vontade para entrar em contato. Vamos 리졸버 isso juntos.
Github Actions를 사용하지 않는 이유는 무엇입니까?
Próximo post vamos configurar e rodar os testes no action integrando com a ferramenta doCodeCov .
Reference
이 문제에 관하여(Publicando uma api REST Go no Heroku.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/booscaaa/publicando-uma-api-rest-go-no-heroku-1j9o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)