问题描述
大家好,我已经有几天要处理这个问题了,希望您能帮助我谢谢您。
我有一个带有Rails,Postgres,docker和docker-compose的应用程序,该应用程序作为多容器部署在AWS的弹性beantalks上。 另外,我还在AWS的ECR上推送了该映像。 根据实例日志启动容器,创建并迁移数据库,但没有任何理由关闭服务器。
D,[2020-09-03T01:05:45.291305 #6] DEBUG -- : [1m[35m (3.0ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
D,[2020-09-03T01:05:45.300744 #6] DEBUG -- : [1m[36mActiveRecord::InternalMetadata Load (1.3ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m [["key","environment"],["LIMIT",1]]
D,[2020-09-03T01:05:45.308267 #6] DEBUG -- : [1m[35m (0.4ms)[0m [1m[35mBEGIN[0m
D,[2020-09-03T01:05:45.309501 #6] DEBUG -- : [1m[35m (0.5ms)[0m [1m[35mCOMMIT[0m
D,[2020-09-03T01:05:45.310092 #6] DEBUG -- : [1m[35m (0.5ms)[0m [1m[34mSELECT pg_advisory_unlock(8461001017939384740)[0m
Postgrest database has been migrated!
=> Booting Puma
=> Rails 5.2.3 application starting in production
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 4.0.1 (ruby 2.6.3-p62),codename: 4 Fast 4 Furious
* Min threads: 5,max threads: 5
* Environment: production
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
- Gracefully stopping,waiting for requests to finish
=== puma shutdown: 2020-09-03 02:09:56 +0000 ===
- Goodbye!
Exiting
在这里复制我认为相关的文件:
Docker和docker-compose文件
FROM ruby:2.6.3
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN gem install bundler -v '2.0.2'
RUN bundle install
COPY . /myapp
# Add a script to be executed every time the container starts.
# COPY ./entrypoints/docker-entrypoint.sh /usr/bin/
EXPOSE 3000
RUN chmod +x ./entrypoints/docker-entrypoint.sh
ENTRYPOINT ["./entrypoints/docker-entrypoint.sh"]
version: "3"
services:
db:
image: "postgres:latest"
environment:
- POSTGRES_PASSWORD=******
server:
restart: always
build: .
# Tag with the container registry to dev
image: *********.dkr.ecr.us-west-1.amazonaws.com/backend-dev-erc:latest
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgrespassword
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
volumes:
- .:/myapp
ports:
- "80:3000"
depends_on:
- db
./ entrypoints / docker-entrypoint.sh文件
#!/bin/bash
set -e
# If the database exists,migrate. Otherwise setup (create and migrate)
echo "Database already exists!" || bundle exec rake db:create db:migrate db:seed
bundle exec rake db:migrate 2>/dev/null || bundle exec rake db:create db:migrate db:seed
echo "Postgrest database has been migrated!"
# Remove a potentially pre-existing server.pid for Rails.
rm -f /myapp/tmp/pids/server.pid
# Then exec the container's main process (what's set as CMD in the Dockerfile).
rails server -b 0.0.0.0 -p 3000
Dockerrun.aws.json
{
"AWSEBDockerrunVersion": 2,"containerDefinitions": [
{
"name": "server","image": "********.dkr.ecr.us-west-1.amazonaws.com/backend-dev-erc:latest","hostname": "server","essential": true,"memory": 128,"portMappings": [
{
"hostPort": 80,"containerPort": 80
}
]
}
]
}
我将不胜感激。谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)