This commit is contained in:
Henne Vogelsang 2018-09-12 19:39:38 +00:00 • committed by GitHub
commit e4b36bdbd2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 32 deletions

View file

@ -27,14 +27,19 @@ based development environment, based on [docker](https://www.docker.com/) and
[docker-compose](https://docs.docker.com/compose/). Here's a step by step guide [docker-compose](https://docs.docker.com/compose/). Here's a step by step guide
how to set it up. how to set it up.
1. Set up the development environment: **WARNING**: Since we mount the repository into our container, your user id and
```bash the id of the osem user inside the container need to be the same. If your user
docker-compose run --rm osem bundle exec rake setup:bootstrap id (`id -u`) is something **other** than `1000` you can copy the docker-compose
``` override example file and in it, set your user id in the variable
*CONTAINER_USERID*.
1. Start the development environment: ```bash
cp docker-compose.override.yml.example docker-compose.override.yml
```
1. Start the development environment¹:
```bash ```bash
docker-compose up --build docker-compose up
``` ```
1. Check out your OSEM rails app. You can access the app at http://localhost:3000. Whatever you change in your cloned repository will have effect in the development environment. Sign up, the first user will be automatically assigned the admin role. 1. Check out your OSEM rails app. You can access the app at http://localhost:3000. Whatever you change in your cloned repository will have effect in the development environment. Sign up, the first user will be automatically assigned the admin role.
@ -54,13 +59,6 @@ how to set it up.
docker-compose exec osem_1 /bin/bash -l docker-compose exec osem_1 /bin/bash -l
``` ```
**WARNING**: Since we mount the repository into our container, your user id and the id of the osem user inside the container need to be the same. If your user id (`id -u`) is something else than `1000` you can copy the docker-compose override example file and in it, set your user id in the variable
*CONTAINER_USERID*.
```bash
cp docker-compose.override.yml.example docker-compose.override.yml
```
### with Vagrant ### with Vagrant
Another option is using [Vagrant](https://www.vagrantup.com/) and [VirtualBox 5.0.10](https://www.virtualbox.org/wiki/Download_Old_Builds_5_0) to create your development environment. Another option is using [Vagrant](https://www.vagrantup.com/) and [VirtualBox 5.0.10](https://www.virtualbox.org/wiki/Download_Old_Builds_5_0) to create your development environment.

View file

@ -4,19 +4,8 @@ ARG CONTAINER_USERID
# Configure our user # Configure our user
RUN usermod -u $CONTAINER_USERID osem RUN usermod -u $CONTAINER_USERID osem
# We copy the Gemfiles into this intermediate build stage so it's checksum
# changes and all the subsequent stages (a.k.a. the bundle install call below)
# have to be rebuild. Otherwise, after the first build of this image,
# docker would use it's cache for this and the following stages.
COPY Gemfile /osem/
COPY Gemfile.lock /osem/
RUN chown -R osem /osem
# Add our files
USER osem USER osem
WORKDIR /osem/ WORKDIR /osem/
# Install our bundle CMD ["/osem/bin/osem-init.sh"]
RUN export NOKOGIRI_USE_SYSTEM_LIBRARIES=1; bundle install --jobs=3 --retry=3
CMD ["foreman", "start"]

View file

@ -1,3 +1,9 @@
#!/bin/bash #!/bin/bash
# Configure our bundle
export NOKOGIRI_USE_SYSTEM_LIBRARIES=1
# Install our bundle if it's outdated
bundle check || bundle install --jobs=3 --retry=3
# Setup the app if it isn't already setup
bundle exec rake setup:bootstrap bundle exec rake setup:bootstrap
foreman start # Start the app
foreman start -p 3000

View file

@ -5,13 +5,15 @@ services:
image: postgres image: postgres
environment: environment:
PGDATA: /var/lib/postgresql/data/pgdata PGDATA: /var/lib/postgresql/data/pgdata
web: osem:
build: . build:
# env_file: dotenv.example context: .
args:
CONTAINER_USERID: 1000
command: /osem/bin/osem-init.sh command: /osem/bin/osem-init.sh
depends_on: depends_on:
- database - database
ports: ports:
- 5000:5000 - 3000:3000
volumes: volumes:
- .:/osem - .:/osem

View file

@ -7,21 +7,23 @@ services:
PGDATA: /var/lib/postgresql/data/pgdata PGDATA: /var/lib/postgresql/data/pgdata
volumes: volumes:
- database:/var/lib/postgresql/data/pgdata - database:/var/lib/postgresql/data/pgdata
web: osem:
build: . build: .
dockerfile: Dockerfile.production dockerfile: Dockerfile.production
env_file: .env.production # see dotenv.example file env_file: .env.production # see dotenv.example file
depends_on: depends_on:
- database - database
ports: ports:
- 5000:5000 - 3000:3000
volumes: volumes:
- .:/osem - .:/osem
- web-data:/osem/public/system - web-data:/osem/public/system
- web-assets:/osem/public/assets
- web-logs:/osem/log - web-logs:/osem/log
# named volumes to persist data # named volumes to persist data
volumes: volumes:
database: database:
web-data: web-data:
web-assets:
web-logs: web-logs: