Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Init mocks on Docker startup #222

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

danielpoonwj
Copy link

Purpose

There are a few active discussions on being able to initialize mocks or configure Smocker on startup (#217, #214) and this is another proposed approach.

This only applies to Docker-based workflows, but the implementation is more straightforward without touching the actual core codebase.

Approach

The main idea is using an Entrypoint script to start the server process in the background, run some configuration code, then restore the process to the foreground. This pattern is described in the official Docker docs. It's also used in practice in postgres, mysql, localstack etc.

Note: bash needs to be used instead of the default bourne shell in alpine because of some issues when attempting to work with background jobs. If you change the Entrypoint shebang to #!/bin/sh, there will be an error.

$ docker-compose up
Starting smocker_smocker_1 ... done
Attaching to smocker_smocker_1
smocker_1  | /opt/docker-entrypoint.sh: set: line 3: can't access tty; job control turned off
smocker_1  | time="2021-10-03T17:46:24Z" level=info msg="Setting log level" log-level=warning
smocker_1  | /opt/docker-entrypoint.sh: uploading /docker-entrypoint-init.d/helloworld.yml
smocker_1  | /opt/docker-entrypoint.sh: fg: line 58: job %1 not created under job control
smocker_smocker_1 exited with code 2

@steveoh
Copy link

steveoh commented Feb 7, 2023

This looks great. Any word on a review and merge status?

@joarobles
Copy link

joarobles commented May 11, 2023

Any updates on this or why it isn't considered?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants